我有一個Django表單類中定義喜歡這Models
:Django的ModelChoiceField:過濾查詢設置和設置默認值作爲對象
class AccountDetailsForm(forms.Form):
...
adminuser = forms.ModelChoiceField(queryset=User.objects.all())
該工程確定,但它有一些侷限性,所以我似乎無法解決:
(1)I想用的查詢集的過濾器,基於傳遞給形式的可變accountid
,像這樣:
User.objects.filter(account=accountid)
這在模型中不起作用,因爲accountid
當然不能作爲變量傳遞。
由此可見,queryset
必須以某種方式在Views
定義,但據我可以看到它在Form類必填字段。
(2)我想提出的AccountDetailsForm
在數據庫中的對象,我可以在Views
這樣選擇默認的選擇:
User.objects.filter(account=accountid).filter(primary_user=1)
我已經試過指定管理用戶的默認形式值,(這與其他標準的表單字段的作品,像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
以外的東西?
謝謝。
嗨場,感謝您的回覆。在視圖中設置查詢集運行良好。我無法解決的部分是將ModelChoiceField的綁定表單值(而不是默認值)設置爲_User.objects.filter(account = accountid).filter(primary_user = 1)_。謝謝。 – eli 2011-03-16 18:52:42