1
我有两个具有外键关系的模型,当我通过{% for badge in badge_type.badge_set.all %}
循环显示徽章对象时,它们按ID排序,但我希望它们按sort_order
排序或name
场,每Meta
如何在通过模板中的外键访问时对django查询集进行排序
class BadgeType(models.Model):
name = models.CharField(max_length=50, unique=True)
class Badge(models.Model):
name = models.CharField(max_length=50, unique=True)
badge_type = models.ForeignKey(BadgeType)
sort_order = models.PositiveIntegerField(blank=True, null=True)
...
class Meta:
order_with_respect_to = 'badge_type'
ordering = ['sort_order', 'name']
在视图,我在我的情况下发送此:
@login_required
def list(request):
badge_types = BadgeType.objects.all()
context = {"badge_types": badge_types,}
return render(request, "badges/list.html" , context)
在模板:
{% for badge_type in badge_types %}
{{badge_type.name}}
{% for badge in badge_type.badge_set.all %}
{{badge.name}}
{% endfor %}
{% endfor %}
然而,在模板他们正在根据自己的ID进行排序。
我将如何指定'BadgeType'中Badge对象的排序? – 43Tesseracts
你为什么不去掉order_with_respect_to? –