2
反向外键我有以下for
循环我在模板中创建:如何订购在Django
{% for task in item.task_set.all %}
<li class="task">
{{ task }}
</li>
{% endfor %}
有没有办法订购task_set。它目前通过ID订购,但我想按任务名称订购。
反向外键我有以下for
循环我在模板中创建:如何订购在Django
{% for task in item.task_set.all %}
<li class="task">
{{ task }}
</li>
{% endfor %}
有没有办法订购task_set。它目前通过ID订购,但我想按任务名称订购。
如果你是快乐的总是通过任务的名字订购的任务,使用ordering选项
class Task(models.Model):
name = models.CharField(max_length=50)
class Meta:
ordering = ['name']
如果你想要一个不同的排序比模型的默认排序,你可以设置的顺序然后在模板中遍历tasks
。
# view
tasks = item.task_set.order_by('name')
# template
{% for task in tasks %}
由于无法将参数传递给{{ item.task_set.order_by }}
,因此无法更改模板中的排序。如果您确实需要在模板中指定查询集的顺序,则需要编写custom template filter。