的特定情況下,我已經是這樣的:如何將初始參數傳遞給django的ModelForm實例?
我有一個交易模式,與字段:from
,to
(均爲ForeignKey
s至auth.User
模型)和amount
。在我的表單中,我想提供用戶填寫的兩個字段:amount
和from
(to
將在視圖函數中自動設置爲當前用戶)。
默認窗口小部件顯示ForeignKey
是一個選擇框。但我想要達到的目標僅限於user.peers
查詢集成員的選擇(這樣人們只能註冊與同級的交易,不會被所有系統用戶淹沒)。
我試圖改變的ModelForm來是這樣的:
class AddTransaction(forms.ModelForm):
from = ModelChoiceField(user.peers)
amount = forms.CharField(label = 'How much?')
class Meta:
model = models.Transaction
但似乎我必須要通過的選擇的查詢集爲ModelChoiceField
就在這裏 - 在我沒有到web request.user
訪問目的。
我該如何限制窗體中的選擇到用戶相關的窗體?
非常感謝!這真的有幫助。 – kender 2009-11-09 05:33:57
從Form類中可以通過'self.instance'訪問Model實例。請記住,添加/創建新對象時,該實例將顯得空白。 – JCotton 2011-07-12 20:33:53
稍微簡單一點就是在你的__init __()中捕獲systemid作爲一個常規參數,同時通過** kwargs直接通過:012_f_init__(self,systemid,* args,** kwargs): super(BackupForm,self).__ init __ * args,** kwargs)' – JCotton 2011-07-12 20:34:29