Конструктор для forms.ModelChoiceField
требует набора запросов. Я не знаю набор запросов до тех пор, пока не произойдет запрос. Дистиллированная:
# 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='??????')
Что я сейчас делаю:
# 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
Затем я могу вызвать его в представлении, используя аргументы, обработанные из url с urlconf, чтобы построить запрос и получить класс. Это похоже на неправильный способ сделать это. Есть ли установленный способ сделать это в django?