尝试使用Django链接两个模型

时间:2013-06-11 18:21:10

标签: django django-models

我设置了几个模型,用户和事件。我希望用户能够向自己添加事件。我可能会对此完全错误,但到目前为止我所拥有的是这些模型:

class Profile(models.Model):
    user = models.OneToOneField(User)
    name = models.CharField(max_length=50)

    def __unicode__(self):
        return self.name

class eventItem(models.Model):
    user = models.ForeignKey(Profile)
    event = models.ForeignKey(Event)

    def __unicode__(self):
        return self.event.title

class Event(models.Model):
    def __unicode__(self):
        return self.title
    event_id = models.BigIntegerField(blank = 'TRUE', primary_key='TRUE')
    title = models.CharField(max_length=200, blank = 'TRUE')

我正在尝试编写一个视图,只要用户单击某个事件旁边的按钮,该视图就会被激活。结果应该以某种方式将用户和事件链接在一起,以便稍后我可以查看每个用户正在参加的事件列表。我想我也可能在eventItem中使用了错误的字段类型。由于许多用户可以链接到同一个事件,并且许多事件可以链接到一个用户,我应该使用ManytoMany吗?

1 个答案:

答案 0 :(得分:1)

简化一下:您拥有的用户和事件中每个用户可以拥有多个事件,而一个事件可以拥有多个用户。这意味着在这种情况下最好的方法是使用ManyToMany,如最后所建议的那样。您可以避免使用“eventItem”,并直接从事件中访问(在django中)用户,反之亦然。