not formularios form fields example crispy combofield django django-forms optional django-models

fields - formularios django



Django modelform NO campo obligatorio (4)

Deberías agregar:

address = forms.CharField(required=False, blank=True, null=True)

Tengo un formulario como este:

class My_Form(ModelForm): class Meta: model = My_Class fields = (''first_name'', ''last_name'' , ''address'')

¿Cómo puedo poner el campo de dirección como opcional?


La solución de @Anentropic del comentario sobre la respuesta de @ Atma funcionó para mí. Y creo que es el mejor también.

Su comentario:

null = True, blank = True hará que se requiera el campo ModelForm = False

Lo configuré en mi campo ManyToMany en mi clase UserProfile y funcionó a la perfección.

Mi clase UserProfile ahora se ve así (observe el campo de friends ):

class UserProfile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) friends = models.ManyToManyField(''self'', null=True, blank=True)

También creo que esta es la solución más hermosa ya que haces lo mismo, colocas null y en blank en True , si tienes un campo de char simple o, como yo, el campo ManyToMany .

De nuevo, muchas gracias @Anentropic. :)

PD: escribí esto como una publicación porque no pude hacer ningún comentario (tengo menos de 50 reputación) pero también porque creo que su comentario necesita más exposición.

PPS Si esta respuesta te ayudó, por favor actualiza su comentario.

Saludos :)


Supongo que tu modelo es así:

class My_Class(models.Model): address = models.CharField()

Su formulario:

class My_Form(ModelForm): address = forms.CharField(required=False) class Meta: model = My_Class fields = (''first_name'', ''last_name'' , ''address'')


class My_Form(forms.ModelForm): class Meta: model = My_Class fields = (''first_name'', ''last_name'' , ''address'') def __init__(self, *args, **kwargs): super(My_Form, self).__init__(*args, **kwargs) self.fields[''address''].required = False