Sagen wir, ich bin mit dem Django-Site-Modell:Wie konstruiere ich ein Django-Formular mit Modellobjekten in einem Select-Widget?
class Site(models.Model):
name = models.CharField(max_length=50)
sind Meine Website-Werte (Schlüssel, Wert):
1. Stackoverflow
2. Serverfault
3. Superuser
ich mit der ein Formular mit einer HTML-select-Widget erstellen möchten über Werte:
<select>
<option value="1">Stackoverflow</option>
<option value="2">Serverfault</option>
<option value="3">Superuser</option>
</select>
ich denke, mit dem folgenden Code zu starten, aber es ist unvollständig:
class SiteForm(forms.Form):
site = forms.IntegerField(widget=forms.Select())
Irgendwelche Ideen, wie ich das mit Django Form erreichen kann?
EDIT
Verschiedene Seiten haben unterschiedliche Website Werte präsentieren. Eine Dev-Seite zeigt Entwicklungsseiten an, während eine Kochseite Rezept-Sites anzeigt. Ich möchte die Widget-Optionen basierend auf der Ansicht im Grunde dynamisch füllen. Ich glaube, dass ich das im Moment erreichen kann, indem ich den HTML-Code manuell in der Vorlage erzeuge.
Kann ich das Abfrage-Set in der Ansicht angeben? –
Wie in, bieten die 'QuerySet' zu verwenden, wann immer Sie Ihre' Form' instanziieren? Ich bin mir nicht sicher. Wenn Ihre Möglichkeiten begrenzt sind, scheint es ziemlich einfach zu sein, eine 'Form'-Unterklasse bereitzustellen, die auf die von Ihnen verwendete Ansicht zugeschnitten ist, zB' DeveloperSitesForm', 'EndUserSitesForm', usw. –
Ich konnte das aus dem Code heraus machen diese Frage: http://stackoverflow.com/questions/622982/django-passing-custom-form-parameter-to-formset –