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(),这就纠正了问题。完美。。。。。。。。。