覆盖init方法并接受新的关键字参数
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'})


