Django表单更新失败,不允许使用NULL
我有一个客户实例,我正在尝试使用一个表单只更新几个字段,因为其余的是“幕后”信息 我收到这个错误:Django表单更新失败,不允许使用NULL,django,forms,django-forms,Django,Forms,Django Forms,我有一个客户实例,我正在尝试使用一个表单只更新几个字段,因为其余的是“幕后”信息 我收到这个错误: 无法在“iddef_cst”列、表“EasyTrade20.dbo.app_customer_cst”中插入NULL值;列不允许空值。更新失败 即使该记录已填充并已包含该值 views.py: def edit_customer(request, id): customer_obj = get_object_or_404(AppCustomerCst, id_cst=id) for
无法在“iddef_cst”列、表“EasyTrade20.dbo.app_customer_cst”中插入NULL值;列不允许空值。更新失败
即使该记录已填充并已包含该值
views.py:
def edit_customer(request, id):
customer_obj = get_object_or_404(AppCustomerCst, id_cst=id)
form = CustomerMaintForm(request.POST, instance=customer_obj)
if form.is_valid:
form.save()
forms.py
class CustomerForm(forms.ModelForm):
class Meta:
model = AppCustomerCst
fields = ('id_cst', 'is_active_cst', 'name_cst', 'address_1_cst', 'address_2_cst', 'address_3_cst',
'city_cst', 'state_cst', 'zip_cst', 'country_cst', 'salesrep_cst', 'type_cst',
'is_allowed_flat_cst', 'balance_notify_cst', 'receive_emails_cst',
'contact_domain_cst'
我尝试使用
form.save(commit=False)
创建表单实例,并使用customer\u obj
中的字段将当前值传递给表单进行更新,但最终的form.save()
似乎创建了一个新对象。是否有任何干净的方法可以使用ModelForm
只更新模型实例中的少数字段?您使用的是CustomerMainForm和CustomerPerform,为什么?您是对的!我最初创建了两个表单,一个用于添加,一个用于维护。然后我意识到这不是最好的方法,错过了更新这个函数。谢谢解决了吗…?是的,我将我的视图更新为CustomPerform(),这就纠正了问题。完美。。。。。。。。。