0

我有以下模型:

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 次。我有什么遗漏吗?

干杯!

4

1 回答 1

2

这是因为{% regroup %}不对其输入进行排序。您正在尝试按用户分组,但 model.jobview_set.all 不是按用户排序的,因此您会根据用户的排序方式获得随机组。

model.jobview_set.all最简单的解决方案是在将其传递给模板之前进行排序。

直接取自 django 文档:

请注意,{% regroup %} 不会对其输入进行排序!

https://docs.djangoproject.com/en/1.4/ref/templates/builtins/#regroup

于 2012-07-26T02:10:11.477 回答