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 %}

私が抱えている問題は、実際にはユーザーごとにグループ化されていないことです。つまり、ユーザーごとにランダムにグループ化されているわけではありません。ユーザーが2回表示されることもあれば、3回表示されることもあります。

乾杯!

4

1 に答える 1

2

これは、{% regroup %}がその入力を順序付けしないためです。ユーザー別にグループ化しようとしていますが、model.jobview_set.all はユーザー別に並べ替えられていないため、ユーザーの並べ替えに応じてランダムなグループが取得されます。

model.jobview_set.all最も簡単な解決策は、テンプレートに渡す前にソートすることです。

django doc から直接取得:

{% regroup %} は入力を順序付けしないことに注意してください!

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

于 2012-07-26T02:10:11.477 に答える