2012-07-26 51 views
0

我有以下型號:Django的重組用戶ForeignKey的

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'] 

並在View我獲取作業信息:

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

這是因爲{% regroup %}未對其輸入進行排序。您試圖按用戶分組,但model.jobview_set.all不是由用戶排序的,因此您可以根據用戶的排序方式獲得隨機組。

最簡單的解決方案是在將model.jobview_set.all傳遞給模板之前進行排序。

直接從Django的文檔的措施:

注意{%重整旗鼓%}不責令其輸入!

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

+0

衛生署,感謝您的快速回復! – 2012-07-26 02:29:29