无法解析剩余部分:来自 'post.answers_set.all.order_by('-date_posted')' 的 '('-date_posted')'
Posted
技术标签:
【中文标题】无法解析剩余部分:来自 \'post.answers_set.all.order_by(\'-date_posted\')\' 的 \'(\'-date_posted\')\'【英文标题】:Could not parse the remainder: '('-date_posted')' from 'post.answers_set.all.order_by('-date_posted')'无法解析剩余部分:来自 'post.answers_set.all.order_by('-date_posted')' 的 '('-date_posted')' 【发布时间】:2020-10-10 21:27:19 【问题描述】:% for answer in post.answers_set.all.order_by('-date_posted') %
我正在使用这一行来检索 models.py 中与该问题相关的所有答案。当我在 django shell 中工作时,它工作正常,但在 django 模板中显示奇怪的错误“无法解析余数:'('-date_posted')' from 'post.answers_set.all.order_by('-date_posted') '”。有没有其他选择,请建议。提前感谢您的帮助。
【问题讨论】:
【参考方案1】:您可以在 django 模板中使用过滤器。
在app目录下创建“templatetags”目录,然后在其中创建“_init_.py”和“filters.py”文件。
app_directory
templatetags
__init__.py
filters.py
将 _init_.py 留空,并将以下代码添加到 filters.py:
from django import template
register = template.Library()
@register.filter
def sort_by(queryset, order):
return queryset.order_by(order)
然后你可以在加载后在html文件中使用“sort_by”过滤器:
<html lang="en">
% load filters %
<body>
% for answer in post.answers_set.all|sort_by:'-date_posted' %
<p> answer.pk </p>
% endfor %
</body>
</html>
【讨论】:
以上是关于无法解析剩余部分:来自 'post.answers_set.all.order_by('-date_posted')' 的 '('-date_posted')'的主要内容,如果未能解决你的问题,请参考以下文章
无法解析剩余部分:来自 'item[0]' Django 的'[0]'
无法解析剩余部分:来自 'sobj.id==obj.id' 的 '==obj.id'
Django:TemplateSyntaxError:无法解析剩余部分
模板语法错误无法解析剩余部分:来自“静态(“images/logo.png”)”的“(“images/logo.png”)”。在 django-jinja 模板中?