【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(
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值