<strong>forms.Form</strong> y <strong>forms.ModelForm</strong> ¿En que casos usar uno u otro?

Pregunta de la clase:
Model forms
Didier Zúñiga

Didier Zúñiga

Pregunta
studenthace 7 años

forms.Form y forms.ModelForm ¿En que casos usar uno u otro?

6 respuestas
para escribir tu comentario
    Nicolás Valderrama

    Nicolás Valderrama

    studenthace 4 años

    Sin embargo, y es muy importante que lo tengan en cuenta un ModelForm también puede ser customizado, por lo que es más escalable, en este link la documentación explica como añadir validadores y fields propios, totalmente customizables en un ModelForm

    Juan David Marquez Rodriguez

    Juan David Marquez Rodriguez

    studenthace 6 años

    forms.Form
    y
    forms.ModelForm
    tiene el mismo uso. Se diferencian en que
    forms.ModelForm
    utiliza los
    models
    como base para crear el formulario.

    forms.Form
    crea un formulario si no se tiene como base un modelo. Solamente recibirián un request, procesarian la información en un
    views.py
    y retornarían un
    response
    , pero nada de esto se guardaría en una base de datos.

    Bruno Diharce

    Bruno Diharce

    studenthace 6 años

    Cabe recalcar que el model form usualmente se usa para modificar/actualizar o crea un nuevo objeto relacionado a ese modelo. Ejemplo de creacion Un nuevo post. Ejemplo form comun Login (Tomas los datos y los chequeas, pero no modificas ni creas nada nuevo)

    Cesar David Ramírez Dimaté

    Cesar David Ramírez Dimaté

    studenthace 6 años

    Lo puedes llegar a identificar revisando el código de ambos.

    En el primero los nombres de los input que hayas definido en el template serán los que utilizará el formulario para almacenar los datos. Por eso el forms.Form.

    class ProfileForm(forms.Form): """ The fields are the names defined in the template manually and will be stored in the model. """ website = forms.URLField(max_length=200, required=False) biography = forms.CharField(max_length=500, required=True) phone_number = forms.CharField(max_length=20, required=False) picture = forms.ImageField(required=True)

    En el segundo los nombres de los campos son sacados del modelo y serán utilizados posteriormente en el template. Por eso el forms.ModelForm.

    class PostForm(forms.ModelForm): """ The model's fields that will be used to create the form are placed. """ class Meta: """ Form settings """ model = Post fields = ('user', 'profile', 'title', 'photo')

    Saludos.

    Enrique Sardon Manrique

    Enrique Sardon Manrique

    studenthace 6 años

    froms es para hacer un form custom, model form es un form basado en un modelo que ya tienes… de hecho creo que para usar model form necesitas el form basico antes

    Erick Herrera

    Erick Herrera

    studenthace 6 años

    Me surgió la misma duda

Curso de Django [Empieza Gratis]

Curso de Django [Empieza Gratis]

Crea sitios web fácilmente. Aprende sobre la conectividad y la extensibilidad que ofrecen los nuevos componentes de Django: el framework de desarrollo Web para Python más usado en la actualidad.

Curso de Django [Empieza Gratis]

Curso de Django [Empieza Gratis]

Crea sitios web fácilmente. Aprende sobre la conectividad y la extensibilidad que ofrecen los nuevos componentes de Django: el framework de desarrollo Web para Python más usado en la actualidad.