La diferencia entre el formulario modelo de Django y el formulario Form

Cuando se trata de formularios modelo y formularios normales (Forms) en Django, la principal diferencia es su propósito y cómo se implementan.

  1. Formulario de modelo (ModelForm):
    un formulario de modelo es un formulario especial en Django que se define en función de un modelo. Un modelo generalmente representa una estructura de datos en una base de datos a través de la clase Model de Django. El propósito de ModelForms es simplificar el manejo de formularios relacionados con el modelo mediante la creación automática de campos de formulario y reglas de validación, y el manejo del guardado y la actualización de instancias del modelo.

Los formularios modelo tienen las siguientes características:

  • Crear automáticamente campos de formulario: el formulario modelo creará automáticamente los campos de formulario correspondientes en función de los campos definidos en el modelo. Por ejemplo, si hay un CharField en el modelo, el formulario del modelo generará un cuadro de entrada de texto.
  • Reglas de validación automática: Los formularios del modelo se validan automáticamente de acuerdo con las reglas de validación de los campos del modelo. Por ejemplo, si un campo en un modelo define una longitud máxima de 50, el formulario del modelo garantizará que el usuario ingrese datos que no excedan esta longitud.
  • Manejar el guardado y la actualización de modelos: los formularios de modelo pueden manejar el guardado y la actualización de instancias de modelos. Cuando se valida el formulario, puede guardar los datos directamente en la base de datos o actualizar una instancia de modelo existente.

Los pasos principales para usar un formulario modelo incluyen:

  • Cree una django.forms.ModelFormclase de formulario que herede y especifique el modelo asociado.
  • Los campos se pueden personalizar aún más en la clase de formulario, como especificar campos que se mostrarán, reglas de validación personalizadas, etc.
  • Utilice el formulario del modelo en la función de visualización para procesar datos, como mostrar el formulario, validar los datos del formulario, guardar o actualizar la instancia del modelo, etc.
  1. Forma ordinaria (Form):
    La forma ordinaria (también conocida como clase de formulario) es otro tipo de formulario en Django, que no depende de la definición del modelo. Le permite definir libremente campos de formulario y reglas de validación, y manejar el envío de datos de formulario.

Una forma normal tiene las siguientes características:

  • Defina campos y reglas de validación libremente: a diferencia de los formularios modelo, los formularios normales le permiten definir campos y reglas de validación con total libertad. Puede agregar varios tipos de campos (como cuadros de entrada de texto, casillas de verificación, listas desplegables, etc.) según sea necesario y definir reglas de validación personalizadas para estos campos.
  • No maneja el guardado y la actualización de modelos: los formularios normales no son responsables de manejar el guardado y la actualización de las instancias del modelo. Solo es responsable de recibir y validar los datos del formulario y luego pasar los datos para ver funciones u otra lógica de procesamiento.

Los pasos principales para usar un formulario normal incluyen:

  • Cree una django.forms.Formclase de formulario que herede y defina los campos obligatorios y las reglas de validación.
  • Use formularios ordinarios en funciones de visualización para procesar datos, como mostrar formularios, validar datos de formularios, ejecutar lógica personalizada, etc.

Resumen:
Model Form (ModelForm) es un formulario definido en base a los modelos de Django, que crea automáticamente campos de formulario y reglas de validación, y maneja el guardado y la actualización de instancias de modelos. Está estrechamente relacionado con el modelo en la base de datos, lo que proporciona una forma simplificada de tratar la interacción con los datos del modelo.

El formulario ordinario (Formulario) es un formulario definido libremente, que puede definir varios campos y reglas de validación, pero no maneja el guardado y la actualización del modelo. Proporciona mayor flexibilidad y es adecuado para escenarios de procesamiento de formularios que no dependen del modelo de la base de datos.

Al elegir qué tipo de formulario usar, tenga en cuenta lo siguiente:

  • Si necesita interactuar con el modelo de la base de datos, crear automáticamente campos y reglas de validación, y manejar el guardado y la actualización del modelo, debe elegir el formulario del modelo (ModelForm).
  • Si necesita definir campos y reglas de validación libremente, y no depende de guardar y actualizar el modelo de la base de datos, debe elegir un formulario normal (Formulario).

Cabe señalar que tanto los formularios modelo como los formularios normales se pueden instanciar y utilizar en las funciones de vista. De acuerdo con las necesidades y escenarios específicos, la selección de un tipo de formulario adecuado para manejar la interacción de datos puede mejorar la eficiencia del desarrollo y la capacidad de mantenimiento del código.

おすすめ

転載: blog.csdn.net/wenhao_ir/article/details/131585071