我在提交 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/