本文主要是介绍【django】ModelForm组件调用save()方法不更新只新建记录的大坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题出现
用了ModelForm组件,想用save方法直接更新数据库记录。但是死活都不是更新,而是新建一条记录,不报错,而且也传了instance参数,网络答案大多是说instance参数没有传。但我并不是这个原因。
modelform部分设置如下:
class MyForm(forms.ModelForm):class Meta:model = models.Bookfields = '__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】ModelForm组件调用save()方法不更新只新建记录的大坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!