的特定情况下,我已经是这样的:如何将初始参数传递给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