2外键字段引用相同的django模型会导致迁移错误

zsohkypk  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(205)

我有一个叫 Profile (具有多个字段)和另一个模型 Trans . 模型 Trans 如下所示(两个模型都在 accounts 应用程序):

class Trans(models.Model):
    sender = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name='sender')
    receiver = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name='receiver')
    #...

使用以下方法创建了多个示例(在视图中):

t = Trans.objects.create(sender_id=profile.pk, receiver_id=prof.pk, ...)
t.save()

哪里 profile.pk 以及 prof.pk 主键是两个不同的配置文件对象(发送方和接收方)。
迁移应用程序会导致以下错误:
django.db.utils.integrityerror:(1062,“关键字'accounts\u trans\u receiver\u id\u 592a7105\u uniq'的重复条目'2')
我检查了table的结构 accounts_trans 在mysql服务器上,我发现 sender_id 被视为 MUL 键,表示“多个记录可以具有相同的发件人(配置文件)”。当接收器未被指定为 MUL 我猜这就是迁移不起作用的原因!我不能改变 receiver_id 字段到 MUL 在mysql数据库中。
有人能帮忙解决这个问题吗?先谢谢你。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题