2011-02-16 47 views
0

我已經偶然發現了這個問題,我的noob大腦炒了試圖解決它。我覺得這裏有一些基本概念,我錯過了。django的意見 - 在通用視圖中訪問一個m2m字段

所以我有這個帶類別選擇字段的「電影」模型和一個與「導演」模型的m2m關係,我試圖寫2個不同的視圖,一個返回按類別過濾的電影列表和一個返回導演過濾的電影列表。 第一個很容易,但我不知道如何讓導演模型的名稱字段創建第二個過濾器。

所以我有這個模型(我已經採取了無關緊要的東西出來,包括類的事情,我上面提到的)

class Director(models.Model): 
    name = models.CharField(max_length=50) 
    web = models.URLField(blank=True, help_text= "opcional") 


class Film(models.Model): 

    name = models.CharField(max_length=50) 
    slug = models.SlugField(max_length= 15) 
    director = models.ManyToManyField(Director, blank=True, help_text= "opcional") 

這個網址

(r'^peliculas/director/(?P<director>\w+)/$', 'filtered_by_director'), 

這種觀點

def filtered_by_director(request,director): 
    return list_detail.object_list(
     request, 
     queryset = Film.objects.filter(director.name=director), 
     template_name ='sections/film_list.html', 
     template_object_name = 'film', 
     paginate_by = 3 

     ) 

兩個視圖都應該使用相同的模板來呈現對象的相關列表 視圖不喜歡我在m2m字段的queryset中使用的過濾器,但我不知道如何真正做到這一點,我嘗試了任何我能想到的,它給了我一個「關鍵字可以」 t是一個表達式「錯誤

任何幫助這個低級noob將不勝感激。

回答

0

在你的過濾器,可以嘗試使用類似(documentation)導演的名字:

filter(director__name=director)

+0

謝謝!那麼做了 – takosuke 2011-02-16 15:02:48