python - Django ModelForm 完整性错误

标签 python django

我在提交 ModelForm 时遇到问题。

基本上,我的一个属性被排除在外,并且当我们创建表单时,我会扩充 request.POST 对象以包含它(这样 ORM 就可以毫无问题地保存它)。根据我的理解(再次强调,对于 django,我是个菜鸟),这就是它的工作原理。

调用 form.save() 时出现 IntegrityError。

我正在使用的代码在这里:http://dpaste.com/783425/ .

编辑:将代码粘贴在下面以供后代使用。

# forms.py
class CreateNewItemForm(ModelForm):
    class Meta:
        model = X.models.Y
        exclude = ('person',)

# views.py
def myview(request, person_id):
    if request.method == "POST":
        data = request.POST.copy()
        data['person'] = Person.objects.get(id=person_id)
        # NOTE: I've also tried: data['person'] = person_id

        form = CreateNewItemForm(data)

        if form.is_valid():
            form.save() # throws the IntegrityError

最佳答案

我认为这段代码是错误的...更改您的代码...

def myview(request, person_id):
    data = None
    if request.method == "POST":
        data = request.POST
    form = CreateNewItemForm(data)
    if form.is_valid():
        newitem = form.save(commit=False)
        newitem.person = Person.objects.get(id=person_id)
        newitem.save()

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

相关文章:

python - Django KeyError {% if in %}

python - 自动将 CSV 导入 Outlook 日历

python - 在 python 中枚举到 For 循环

python - 在 Django 中,模型类中定义的选择是否可以在模型类之外的其他地方访问?

python - PyCharm docker 调试错误

django - 无法使用 Python 3.8 在 Windows 10 上安装 "psycopg2"

python - 如何在 Django 中为对象使用临时存储?

python - 非常大的矩阵(包括 NaN)的热图

python - 正则表达式提取完整捕获组

python - 如何使用传感器 R305 搜索已保存的指纹?