检查是否存在M2M关系

时间:2013-07-23 20:35:15

标签: django django-models

基本上,我有两个模型,Profile和Event。该配置文件具有事件表的ownEvent M2M。该模型如下所示:

class Profile(models.Model):
    user = models.OneToOneField(User)
    name = models.CharField(max_length=50)
    eventList = models.ManyToManyField(Event, blank="TRUE", null="TRUE", related_name='event_set+')
    ownedEvent = models.ManyToManyField(Event, blank="TRUE", null="TRUE", related_name='owned_set')

在网页上,我想根据事件是否拥有者显示两件事之一。查看该页面的用户可能不一定是所有者,因此我只需要检查是否有拥有该事件的某人。我如何在模板中检查这个?

2 个答案:

答案 0 :(得分:4)

如果我理解了您的问题,您想知道EventProfiles M2M表格中是否有ownedEvent与之关联。如果这是正确的,您可以在视图代码中执行以下操作:

is_owned = some_event.owned_set.exists()

然后将is_owned传递给您的模板以进行条件处理。

答案 1 :(得分:0)

我对此并不是百分之百确定,但我认为你可以做点像......

if profiles=Profile.objects.filter(ownedEvent=YOUREVENT):
    #What you want if it is owned
else:
    #What you want if it isn't owned