Para limitar las opciones a una lista desplegable, use us.us_states.STATE_CHOICES
en su modelo y use us.forms.USStateField()
en lugar de us.forms.USStateSelect()
en sus formularios.
Para hacer que un campo sea opcional en un formulario, agregue blank = True
a ese campo en el modelo.
from django.contrib.localflavor.us.us_states import STATE_CHOICES
from django.contrib.localflavor.us.models import USStateField
class ExampleLocation(models.Model):
address1 = models.CharField(max_length=45) #this is not optional in a form
address2 = models.CharField(max_length=45, blank = True) #this is made optional
state = USStateField(choices = STATE_CHOICES)
En lugar de STATE_CHOICES
, hay varias opciones que puede encontrar in the localflavor
documentation. STATE_CHOICES
es el más completo, pero puede que no sea lo que deseas. Si solo desea 50 estados, más DC, use US_STATES
.
Esta respuesta asume que está usando ModelForms. Si no lo eres, deberías serlo. Una vez que haya hecho su modelo, debe seguir SECO y crear formas básicas de este modo:
from django.forms import ModelForm
class ExampleForm(ModelForm):
class Meta:
model = ExampleLocation
Y hereda sus campos de su modelo. Puede personalizar qué campos están disponibles, si no desea el modelo completo, con otras opciones class Meta
, como fields
o exclude
. Los formularios de modelo son tan personalizables como cualquier otra forma, solo comienzan con la suposición de los campos de su modelo.
¿Podría publicar el código para su clase de formulario? –
view eidts gracias – Eva611