Il costruttore per forms.ModelChoiceField
richiede un set di query. Non conosco il set di query fino a quando non si verifica la richiesta. Distillata:Come impostare dinamicamente il queryset di un model.ModelChoiceField su una sottoclasse forms.Form
# models.py
class Bar(models.model):
text = models.TextField()
class Foo(models.Model):
name = models.CharField()
bar = models.ForeignKey(Bar)
# forms.py
class FooForm(forms.Form):
name = forms.CharField()
text = forms.CharField(widget=forms.TextArea)
bar = forms.ModelChoiceField(queryset='??????')
Quello che sto facendo attualmente:
# forms.py
def get_foo_form_class(bars_queryset):
class FooForm(forms.Form):
name = forms.CharField()
text = forms.CharField(widget=forms.TextArea)
bar = forms.ModelChoiceField(queryset=bars_queryset)
return FooForm
posso quindi chiamare nella vista utilizzando gli argomenti analizzati fuori l'url con un urlconf per costruire il set di query e ottenere la classe. Questo sembra il modo sbagliato per farlo. C'è un modo stabilito per farlo in django?