Digamos que estoy usando el modelo de Django Sitio:¿Cómo construyo un formulario Django con objetos de modelo en un widget Seleccionar?
class Site(models.Model):
name = models.CharField(max_length=50)
Mi valores del sitio son (clave, valor):
1. Stackoverflow
2. Serverfault
3. Superuser
Quiero construir un formulario con un widget de select html con el valores anteriores:
<select>
<option value="1">Stackoverflow</option>
<option value="2">Serverfault</option>
<option value="3">Superuser</option>
</select>
estoy pensando en comenzar con el siguiente código pero es incompleta:
class SiteForm(forms.Form):
site = forms.IntegerField(widget=forms.Select())
¿Alguna idea de cómo lograrlo con Django?
EDIT
diferentes páginas presentarán diferentes valores del sitio. Una página de desarrollo mostrará los sitios de desarrollo, mientras que una página de cocina mostrará los sitios de recetas. Básicamente quiero rellenar dinámicamente las opciones de widgets en función de la vista. Creo que puedo lograrlo en este momento al generar manualmente el html en la plantilla.
¿Puedo especificar el queryset en la vista? –
Como en, proporcione el 'QuerySet' para usar cada vez que crea una instancia de su' Form' No estoy seguro. Si sus posibilidades son limitadas, parece bastante sencillo proporcionar una subclase 'Form' adaptada a la vista específica que está utilizando, por ejemplo,' DeveloperSitesForm', 'EndUserSitesForm', etc. –
Pude hacerlo desde el código en esa pregunta: http://stackoverflow.com/questions/622982/django-passing-custom-form-parameters-to-formset –