问题出现
用了ModelForm组件,想用save方法直接更新数据库记录。但是死活都不是更新,而是新建一条记录,不报错,而且也传了instance参数,网络答案大多是说instance参数没有传。但我并不是这个原因。
modelform部分设置如下:
class MyForm(forms.ModelForm):
class Meta:
model = models.Book
fields = '__all__'
title = forms.CharField(
max_length=32,
required=True,
label='书籍名称',
error_messages={
'required': '书名不能为空!',
'max_length': '书名不能超过16个字符!',
},
widget=forms.widgets.TextInput(
attrs={
'class': 'form-control',
'placeholder': "书籍名称",
}
)
)
# 以下省略,这个类其实没啥特别的,只是没有写主键,但是models文件时自动设置主键的,这里并没有在意。
视图部分:
这里我是把add和edit写在一个函数里,分别用book_id是否为None来区分,并且分别拥有GET和POST方法。
class add(View):
def get(self, request, book_id=None):
if not book_id:
update_sig = '添加'
form_obj = MyForm(