让这些模型:
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)
这个观点:
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 %}
我想分别按投票数和发布日期对模板中的单词进行排序。我怎样才能做到这一点?
你(们)能做到自定义模板标签或过滤器,它将单词集和排序类型作为参数。
例如(未测试):
自定义标签.py:
from django import template
register = template.Library()
@register.filter
def sort_by(queryset, order):
return queryset.order_by(order)
模板.html
{% load custom_tags %}
...
{% for word in category.word_set.all|sort_by:'-votes' %}
<p>{{ word }}</p>
{% endfor %}
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)