gpt4 book ai didi

django - 对模板中的对象进行排序

转载 作者:行者123 更新时间:2023-12-02 03:22:34 26 4
gpt4 key购买 nike

让这些模型:

class Category(models.Model):
name = models.CharField(max_length=20)

class Word(models.Model):
name = models.CharField(max_length=200)
votes = models.IntegerField(default=1)
categories = models.ManyToManyField(Category, null=True, blank=True)

此 View :

def main_page(request):
words = Word.objects.all()
categories = Category.objects.all()
return render(request, "main_page.html", {'words': words})

这个模板:

{% for category in categories %}
{% for word in category.word_set.all %}
<p>{{ word }}</p>
{% endfor %}
{% endfor %}

我想分别按投票数和发布日期对模板中的单词进行排序。我怎样才能做到这一点?

最佳答案

您可以制作custom template tag or filter ,它将单词集和排序类型作为参数。

例如(尚未测试):

custom_tags.py:

from django import template
register = template.Library()

@register.filter
def sort_by(queryset, order):
return queryset.order_by(order)

template.html

{% load custom_tags %}
...
{% for word in category.word_set.all|sort_by:'-votes' %}
<p>{{ word }}</p>
{% endfor %}
...

关于django - 对模板中的对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12238939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com