gpt4 book ai didi

Django 多对一完整性错误

转载 作者:行者123 更新时间:2023-12-04 07:25:09 24 4
gpt4 key购买 nike

我是 Python 和 Django 的新手。由于文档,我创建了数据库。我对其进行了测试,发现两个模型之间的多对一关系存在错误。
这对我来说看起来很奇怪,因为它就像这些类之间的一对一关系,但是如果我尝试添加很多,它会出错。还有其他类与多对一具有相同的关系。我以同样的方式创建,它们工作得很好。顺便说一下,我正在使用sqlite。

class unites (models.Model):
id = models.IntegerField(primary_key=True)
unitename = models.CharField(max_length=128)


class intensivecare_forms (models.Model):
id = models.IntegerField(primary_key=True)
hospitals_id = models.ForeignKey(hospitals, on_delete=models.CASCADE)
formname = models.CharField(max_length=128)
data = models.JSONField()
unites_id = models.ForeignKey(unites, on_delete=models.CASCADE)
如果我尝试将第二种形式添加到 unites 中,则会出现此错误。
IntegrityError at /admin/LocalManager/intensivecare_forms/add/

UNIQUE constraint failed: LocalManager_intensivecare_forms.unites_id_id

Request Method: POST
Request URL: http://localhost:8000/admin/LocalManager/intensivecare_forms/add/
Django Version: 3.2.4
Exception Type: IntegrityError
Exception Value:

UNIQUE constraint failed: LocalManager_intensivecare_forms.unites_id_id

Exception Location: /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py, line 423, in execute
Python Executable: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3
Python Version: 3.9.6

最佳答案

unites_idOneToOneField最初。一个 OneToOneField基本上是 ForeignKeyunique=True ,使得两个 intensivecare_forms不能指向同一个unites .
后来你把它变成了 ForeignKey ,但是忘记迁移数据库了,所以UNIQUE约束仍然由数据库强制执行。
来自 makemigrationsmigrate ,通常您可以删除 UNIQUE约束,从而让两个 intensivecare_forms指向同一个unites .

关于Django 多对一完整性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68244955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com