【django】ModelForm组件调用save()方法不更新只新建记录的大坑

问题出现

用了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(

你可能感兴趣的:(django,python,mysql)