gpt4 book ai didi

python - Django - 在一个 View 和调用函数中有两种不同形式的问题

转载 作者:行者123 更新时间:2023-11-28 22:29:23 24 4
gpt4 key购买 nike

我有两种不同的形式,我想在一个 View 中显示。当我有类似下面的内容时,表格将通过并且信息将成功更新......

form1 = Form1(request.POST, request.FILES, instance=profile)
form2 = Form2(request.POST, instance=list)
if form1.is_valid():
form1.save()
return redirect('/dashboard/')
else:
return render(request, 'detail-edit.html', {'form1':form1,'form2':form2})

然而,当我更改 if 语句以包含第二种形式时:

if form1.is_valid() and form2.is_valid():
form1.save() and form2.save()
return redirect('/dashboard/')

那么这不会更新模型的任何信息。

是否可以同时用两种形式调用 is_valid()/save() ?谢谢

最佳答案

Model.save什么都不返回; 。当用作谓词时,None 是假值。

因此,form2.save() 不会因为短路而被调用。参见 and, or operator documentation .

>>> def save_a():
... print('a')
... # return None
...
>>> def save_b():
... print('b')
... # return None
...
>>> save_a() and save_b() # with `and`
a

>>> save_a() # without `and`
a
>>> save_b()
b

您需要替换以下行:

form1.save() and form2.save()

与:

form1.save()
form2.save()

关于python - Django - 在一个 View 和调用函数中有两种不同形式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43011716/

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