2014-04-17 98 views
1

我有兩個模型,如這些:django ManyToManyField並返回?

class Person(models.Model): 
    name = models.CharField(max_length=50) 
    surname = models.CharField(max_length=50) 
    birthday = models.DateField(blank=True, null=True) 

    def __unicode__(self): 
     return self.name + ' ' + self.surname 


class Event(models.Model): 
    title = models.CharField(max_length=200) 
    pub_date = models.DateField() 
    invited_people = models.ManyToManyField(Person, blank=True) 

    def __unicode__(self): 
     return unicode(self.pub_date) 

,所以我可以創造許多事件和一堆人鏈接到各那些

但在我的個人詳細信息模板,如何獲得親自出席的所有活動至?

(我使用的是generic.DetailView)

回答

1

你要找的文件是making queries on many-to-many relationships

簡而言之,您要麼在related_name關鍵字參數ManyToManyField中指定您喜歡的名稱,要麼使用Django默認值如your_event.person_set.all

+0

所以我需要在我的人物詳細視圖中創建一個函數,如「get_events」與該查詢,對不對? – Doc

+1

在最簡單的情況下,您不必 - 您可以在模板中爲{personfor event.event_set.all%} ... {%endfor%}寫入{%for event.event_set.all%}。如果你需要更復雜的東西(如過濾),你應該這樣做,你的視圖的'get_context_data'。 – drdaeman

+0

謝謝,我非常想學:) – Doc