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 有没有一种既定的方式来做这件事?