模型上是否可以多次存在相同的多对多关系(字段的字段名称不同)?在进行迁移时,我似乎无法使其正常工作,因为当我尝试将其复制为其他名称时,python抱怨已存在的关系。
我的模型当前如下所示:
class UserLocations(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
locations = models.ManyToManyField(Locations, related_name="users")
我想添加一个称为“电子邮件”的附加字段,该字段与“位置”字段相同。因此,我可以给它一个不同的相关名称吗?
答案 0 :(得分:0)
是的,同一模型可以具有多个manytomany
关系。反向访问都必须具有不同的related_name
。像这样
class MyModel(models.Model):
relation_a = models.ManyToManyField(AnotherModel, related_name='rev_relation_a')
relation_b = models.ManyToManyField(AnotherModel, related_name='rev_relation_b')
这就是django抱怨的原因,因为您必须为两者明确定义单独的相关名称。
答案 1 :(得分:0)
以您的示例为例,
class UserLocations(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
locations = models.ManyToManyField(Locations, related_name="locations")
more_locations = models.ManyToManyField(Locations, related_name="more_locations")