forms.ModelChoiceField
のコンストラクタにはクエリーセットが必要です。リクエストが出るまで私はクエリーセットを知らない。蒸留:forms.Formサブクラスでmodels.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
私は、クエリセットを構築し、クラスを取得するためのURLconfでURLから解析された引数を使用して、ビューでそれを呼び出すことができます。これはそれを行う間違った方法のように感じる。 djangoでこれを行うための確立された方法はありますか?