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