我有一个表单,我试图从session
向隐藏字段添加初始值。
当我使用
时self.fields['myfield'] = forms.CharField(initial=request.session['value'])
会话值已正确呈现,但我收到错误:
Cannot assign "u'123'": "Model.filed" must be a "Model" instance.
我知道错误是因为它是一个外键字段。
当我这样做时
myfield = forms.CharField(initial=request.session['value'])
表单正常运行但request.session['value']
未呈现且初始值为空。
建议?
答案 0 :(得分:2)
首先确保123
(或其他)是ForeignKey
字段中引用的模型的有效主键。
您可以在将value
项添加到session
词典的位置阻止该行为。
现在,initial
参数正在寻找一个有效的对象,所以就这样给它。
self.fields['myfield'] = forms.CharField(
initial=MyOtherModel.objects.get(pk=request.session['value'])
)
注意:我假设MyOtherModel
是ForeignKey
。