我的django应用程序中有两个模型,事件/用户,它们具有多对多的关系。
活动可以有很多与会者(用户)。 用户可以参加很多活动。
Django自动为这种关系建立了一个桥牌表。
我的问题是如何使用迁移向该表添加新字段,因为此Bridge表没有模型。
答案 0 :(得分:3)
这可以通过创建"通过"表并在其上添加字段。查看https://docs.djangoproject.com/es/1.10/topics/db/models/
上的文档class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
def __str__(self): # __unicode__ on Python 2
return self.name
class Membership(models.Model):
person = models.ForeignKey(Person, on_delete=models.CASCADE)
group = models.ForeignKey(Group, on_delete=models.CASCADE)
date_joined = models.DateField()
invite_reason = models.CharField(max_length=64)
答案 1 :(得分:1)
此桥接表称为关联表。 Imo以这种方式编辑这个表是不好的做法。许多领域的模型连接表明两者之间没有模型。如果您的关联表应该代表其他数据,那么您应该创建新模型
class NewModel(models.Model):
attender = models.ForeignKey(User, null=False)
event = models.ForeignKey(Event, null=False)
# additional fileds
并从事件中删除多对多的关系