【发布时间】:2011-07-16 19:41:36
【问题描述】:
我在Models 中定义了一个 Django Form 类:
class AccountDetailsForm(forms.Form):
...
adminuser = forms.ModelChoiceField(queryset=User.objects.all())
这工作正常,但它有一些我似乎无法解决的限制:
(1) 我想在查询集上使用过滤器,基于传递给表单的变量accountid,如下所示:
User.objects.filter(account=accountid)
这在模型中不起作用,因为accountid 当然不能作为变量传递。
因此queryset 必须以某种方式在Views 中定义,但据我所知,它是Form 类中的必填字段。
(2) 我想在数据库中默认选择AccountDetailsForm 一个对象,我可以像这样在Views 中选择:
User.objects.filter(account=accountid).filter(primary_user=1)
我尝试将 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 以外的其他东西?
谢谢。
【问题讨论】:
标签: django django-forms