覆盖表单的__init__
方法并在那里设置queryset。
class FooForm(forms.Form):
bar = forms.ModelChoiceField(queryset=Bar.objects.none())
def __init__(self, *args, **kwargs):
qs = kwargs.pop('bars')
super(FooForm, self).__init__(*args, **kwargs)
self.fields['bar'].queryset = qs