我有一个叫 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数据库中。
有人能帮忙解决这个问题吗?先谢谢你。
暂无答案!
目前还没有任何答案,快来回答吧!