我有以下型号:
class JobView(models.Model):
job = models.ForeignKey(Job)
user = models.ForeignKey('auth.User')
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
class Meta:
ordering = ['-created']
在一个视图中,我正在抓住工作信息:
model = Job.objects.get(pk=id)
在模板中,我正在执行以下操作:
{% regroup model.jobview_set.all by user as user_list %}
{% for u in user_list %}
{{ u.grouper.email }}
{% endfor %}
我遇到的问题是,用户并没有真正进行分组,或者更多的是由用户随机分组。有时候它会向用户显示两次,有时是3次......我有什么东西吗?我不见了?
干杯!
答案 0 :(得分:2)
这是因为{% regroup %}
没有对其输入进行排序。您尝试按用户分组,但model.jobview_set.all不是由用户订购的,因此您可以根据用户的订购方式获得随机组。
最简单的解决方案是排序model.jobview_set.all
,然后再将其传递给模板。
直接来自django doc's:
请注意{%regroup%}不会对其输入进行排序!
https://docs.djangoproject.com/en/1.4/ref/templates/builtins/#regroup