2014-04-17 69 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