我有一个包含10个字段的模型。通过模型表单,我仅在模板上显示其中8个供用户编辑。
问题是,当我保存表单数据时,它将所有未显示的字段更改为空。看来您必须显示模板中的所有字段。
我正在尝试获取changed_data
的列表,然后将update_fields
与它一起使用,这是行不通的。
我该如何实现?我在做什么错了?
提前谢谢!
视图
if request.method == "POST":
perfil_cliente_form = EmpresaForm(request.POST, instance=contactos)
if perfil_cliente_form.is_valid():
cliente = perfil_cliente_form.save(commit=False)
campos_editados = perfil_cliente_form.changed_data
cliente.FechaModi = date.today()
cliente.save(update_fields=campos_editados)
表格
class EmpresaForm(forms.ModelForm):
class Meta:
model = Contactos
fields = ("Vendedor", "codigo", 'Nombre', 'Razonsociallegal',
"NombrePcia", "Localidad", "Domicilio", "CodPostal", "CodigoZona",
"Telefonos", "emailEmpresa", "Fax",
"Descuento1", "NroDoc", "SituacionIVA", "BancoCBU", "SituacionEmpleador", "SituacionGanancias",
"Comentario1", "Comentario2", "Concepto1",
"Agrupacion1", "Agrupacion2", "EsCliente", "EsVendedor",
"FechaAlta", "FechaModi", "FechaUltOp", "FechaUltVenta",
"IIBBCMJurisSede", "IIBBNroEsCUIT", "IIBBSituacion", "Lista",
"MTCategoria", "PorcLiberacion", "ProFAREBasePend", "PuntosDeVenta",
"PR", "TD", "CpCliente")
答案 0 :(得分:1)
我认为,如果您的模型上的字段设置为blank=True
,则在您的自定义表单中不包含这些字段的情况下,它们只会被更新为空值。
我将创建一个仅指定这8个字段的新表单。然后在您的视图中使用它。