fields - Django: hacer ciertos campos en un ModelForm requerido=Falso
readonly django form (5)
¿Cómo hago ciertos campos en un ModelForm requerido = Falso?
Si tengo:
class ThatForm(ModelForm):
class Meta:
widgets = {"text": Textarea(required=False)}
O si tengo:
class ThatForm(ModelForm):
text = Textarea(required=False)
Django devuelve:
__init__() got an unexpected keyword argument ''required''
Cuando necesitamos establecer la opción requerida en un grupo de campos, podemos:
class ThatForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in self.Meta.required:
self.fields[field].required = True
class Meta:
model = User
fields = (
''email'',
''first_name'',
''last_name'',
''address'',
''postcode'',
''city'',
''state'',
''country'',
''company'',
''tax_id'',
''website'',
''service_notifications'',
)
required = (
''email'',
''first_name'',
''last_name'',
''address'',
''postcode'',
''city'',
''country'',
)
Podrías probar esto:
class ThatForm(ModelForm):
class Meta:
requireds =
{
''text'':False,
}
Los requisitos deben estar bajo Meta.
deberías agregar blank = True al modelo correspondiente
Si el campo modelo tiene en blanco = Verdadero, entonces requerido se establece en Falso en el campo del formulario. De lo contrario, requerido = Verdadero.
También vea la documentación para el espacio en blanco .
lo siguiente puede ser adecuado
class ThatForm(ModelForm):
text = forms.CharField(required=True, widget=forms.Textarea)
siguiendo de los comentarios. Probablemente si:
class ThatForm(ModelForm):
def __init__(self, *args, **kwargs):
# first call parent''s constructor
super(ThatForm, self).__init__(*args, **kwargs)
# there''s a `fields` property now
self.fields[''desired_field_name''].required = False