英文:
Could not parse the remainder: '|' from '|' in Django template while paginating
问题
在分页博客应用程序时,出现了以下错误。
TemplateSyntaxError at /home/
无法解析剩余部分:'|' 从 '|'
请求方法:GET
请求URL:http://127.0.0.1:8000/home/?page1
Django 版本:4.2.2
异常类型:TemplateSyntaxError
异常值:
无法解析剩余部分:'|' 从 '|'
异常位置:C:\Users\chand\venv\Lib\site-packages\django\template\base.py,第703行,__init__内
触发位置:blog.views.PostListView
Python 可执行文件:C:\Users\chand\venv\Scripts\python.exe
Python 版本:3.11.3
Python 路径:
['C:\Users\chand\django_project',
'C:\Users\chand\AppData\Local\Programs\Python\Python311\python311.zip',
'C:\Users\chand\AppData\Local\Programs\Python\Python311\DLLs',
'C:\Users\chand\AppData\Local\Programs\Python\Python311\Lib',
'C:\Users\chand\AppData\Local\Programs\Python\Python311',
'C:\Users\chand\venv',
'C:\Users\chand\venv\Lib\site-packages']
服务器时间:周一,2023年7月10日 10:24:46 +0000
这是我编写的 HTML 模板:
{% extends "blog/base.html" %}
{% block content %}
{% for post in posts %}
<article class="media content-section">
<img class="rounded-circle article-img" src="{{ post.author.profile.image.url }}">
<div class="media-body">
<div class="article-metadata">
<a class="mr-2" href="#">{{ post.author }}</a>
<small class="text-muted">{{ post.date_posted|date:"F d, Y" }}</small>
</div>
<h2><a class="article-title" href="{% url 'post_detail' post.id %}">{{ post.title }}</a></h2>
<p class="article-content">{{ post.content }}</p>
</div>
</article>
{% endfor %}
{% if is_paginated %}
{% if page_obj.has_previous %}
<a class="btn btn-outline-info mb-4" href="?page=1">First</a>
<a class="btn btn-outline-info mb-4" href="{{ page_obj.previous_page_number }}">Previous</a>
{% endif %}
{% for num in page_obj.paginator.page_range %}
{% if page_obj.number == num %}
<a class="btn btn-info mb-4" href="?page={{ num }}">{{num}}</a>
{% elif num > page_obj.number | add:'-3' and num < page.obj.number | add:'3' %}
<a class="btn btn-outline-info mb-4" href="?page={{ num }}">{{num}}</a>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<a class="btn btn-outline-info mb-4" href="{{ page_obj.next_page_number}}">Next</a>
<a class="btn btn-outline-info mb-4" href="{{ page_obj.paginator.num_pages }}">Last</a>
{% endif %}
{% endif %}
{% endblock content %}
有人能帮我解决这个模板错误吗?
英文:
while paginating the blog app , the following error showed up.
TemplateSyntaxError at /home/
Could not parse the remainder: '|' from '|'
Request Method: GET
Request URL: http://127.0.0.1:8000/home/?page1
Django Version: 4.2.2
Exception Type: TemplateSyntaxError
Exception Value:
Could not parse the remainder: '|' from '|'
Exception Location: C:\Users\chand\venv\Lib\site-packages\django\template\base.py, line 703, in init
Raised during: blog.views.PostListView
Python Executable: C:\Users\chand\venv\Scripts\python.exe
Python Version: 3.11.3
Python Path:
['C:\Users\chand\django_project',
'C:\Users\chand\AppData\Local\Programs\Python\Python311\python311.zip',
'C:\Users\chand\AppData\Local\Programs\Python\Python311\DLLs',
'C:\Users\chand\AppData\Local\Programs\Python\Python311\Lib',
'C:\Users\chand\AppData\Local\Programs\Python\Python311',
'C:\Users\chand\venv',
'C:\Users\chand\venv\Lib\site-packages']
Server time: Mon, 10 Jul 2023 10:24:46 +0000
This was the html template I wrote:
{% extends "blog/base.html" %}
{% block content %}
{% for post in posts %}
<article class="media content-section">
<img class="rounded-circle article-img" src="{{ post.author.profile.image.url }}">
<div class="media-body">
<div class="article-metadata">
<a class="mr-2" href="#">{{ post.author }}</a>
<small class="text-muted">{{ post.date_posted|date:"F d, Y" }}</small>
</div>
<h2><a class="article-title" href="{% url 'post_detail' post.id %}">{{ post.title }}</a></h2>
<p class="article-content">{{ post.content }}</p>
</div>
</article>
{% endfor %}
{% if is_paginated %}
{% if page_obj.has_previous %}
<a class="btn btn-outline-info mb-4" href="?page=1">First</a>
<a class="btn btn-outline-info mb-4" href="{{ page_obj.previous_page_number }}">Previous</a>
{% endif %}
{% for num in page_obj.paginator.page_range %}
{% if page_obj.number == num %}
<a class="btn btn-info mb-4" href="?page={{ num }}">{{num}}</a>
{% elif num > page_obj.number | add:'-3' and num < page.obj.number | add:'3' %}
<a class="btn btn-outline-info mb-4" href="?page={{ num }}">{{num}}</a>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<a class="btn btn-outline-info mb-4" href="{{ page_obj.next_page_number}}">Next</a>
<a class="btn btn-outline-info mb-4" href="{{ page_obj.paginator.num_pages }}">Last</a>
{% endif %}
{% endif %}
{% endblock content %}
Could someone help me out on this template error?
答案1
得分: 0
你可以在if标签中使用'or',但不能使用' | ',如果这是你的目标:
{% elif num > page_obj.number | add:'-3' and num < page.obj.number | add:'3' %}
但是:在任何情况下,'add:'xyz'' 表达式都不适用于条件。
英文:
you can use 'or' but not '|' in if tags if that is your target:
{% elif num > page_obj.number | add:'-3' and num < page.obj.number | add:'3' %}
but: in any case the add:'xyz'
expression does not fit to a condition.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论