我在Models
中定义了一个Django窗体类,如下所示:
class AccountDetailsForm(forms.Form):
...
adminuser = forms.ModelChoiceField(queryset=User.objects.all())
这很管用,但它有一些我无法克服的局限性:
(1) 我想在queryset上使用一个过滤器,基于传递给表单的变量accountid
,如下所示:
User.objects.filter(account=accountid)
这在模型中是行不通的,因为当然,accountid
不能作为变量传递.
因此,必须以某种方式在Views
中定义queryset
,但据我所知,它是Form类中的必填字段.
(2)我想在数据库中默认 Select AccountDetailsForm
作为对象,我可以在Views
中 Select ,如下所示:
User.objects.filter(account=accountid).filter(primary_user=1)
我try 将adminuser指定为表单中的默认值(适用于其他标准表单域,如CharField
):
adminuser = User.objects.filter(account=accountid).filter(primary_user=1)
...
form = AccountDetailsForm({'adminuser': adminuser})
return render_to_response('accounts/edit/accountdetails.html',
{'form': form, 'account':account})
但是没有运气.
考虑到我在这里需要的灵活性,我应该使用ModelChoiceField
以外的东西吗?
谢谢你.