Django:只更新窗体中更改的值

2024-04-19 18:57:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个有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")

Tags: 模型form模板表单fieldsdataifrequest
1条回答
网友
1楼 · 发布于 2024-04-19 18:57:20

我认为,如果模型上的字段设置为blank=True,那么如果您的自定义表单中没有这些字段,那么这些字段将被更新为空值。你知道吗

我只需要创建一个只指定这8个字段的新表单。那就用你的观点。你知道吗

相关问题 更多 >