我有一个Django Form类定义喜欢这个Models
:
class AccountDetailsForm(forms.Form):
...
adminuser = forms.ModelChoiceField(queryset=User.objects.all())
Run Code Online (Sandbox Code Playgroud)
这工作正常,但它有一些限制我似乎无法解决:
(1)我想在查询集上使用过滤器,基于accountid
传递给表单的变量,如下所示:
User.objects.filter(account=accountid)
Run Code Online (Sandbox Code Playgroud)
这当然不能在模型中起作用,因为accountid
当然不能作为变量传递.
因此queryset
必须在某种程度上定义Views
,但据我所知,它是Form类中的必填字段.
(2)我想AccountDetailsForm
在数据库中默认选择一个对象,我可以这样选择Views
:
User.objects.filter(account=accountid).filter(primary_user=1)
Run Code Online (Sandbox Code Playgroud)
我已经尝试将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})
Run Code Online (Sandbox Code Playgroud)
但没有运气.
我应该使用除了ModelChoiceField
我需要的灵活性以外的其他东西吗?
谢谢.