class AccountDetailsForm(forms.Form):
...
adminuser = forms.ModelChoiceField(queryset=User.objects.all())
def __init__(self, *args, **kwargs):
accountid = kwargs.pop('accountid', None)
super(AccountDetailsForm, self).__init__(*args, **kwargs)
if accountid:
self.fields['adminuser'].queryset = User.objects.filter(account=accountid)
form = AccountDetailsForm(accountid=3)
你也总是可以在视图中手动设置选项。
form = AccountDetailsForm()
form.fields['adminuser'].queryset = User.objects.filter(account=accountid)
警告:你不会通过将字典传递给示例中的形式来设置默认值。
你实际上是在创建绑定表,可能触发验证和所有爵士乐。
要设置默认值,请使用initials参数。
form = AccountDetailsForm(initial={'adminuser':'3'})