我正在尝试在Django视图中创建一个表单对象,并在其上运行is_valid()方法。 我试过了
1
form = LandingPageForm(initial={'user':user, 'name':"Shahrukh"})
和
2
form = LandingPageForm(data={'user':user, 'name':"Shahrukh"})
但是运行form.is_valid()方法会返回false,
我也试过
3
form = LandingPageForm({'user':user, 'name':"Shahrukh"})
但is_valid()返回false,即使没有错误。
如果情况2和3在用户字段"Select a valid choice. That choice is not one of the available choices."
上出错,我假设是因为用户是外键字段并在表单中呈现为下拉选择字段。
这样做的正确方法是什么?
我想知道如何在Django视图中创建表单对象并在其上运行is_valid()
答案 0 :(得分:0)
我解决了我的问题。错误Select a valid choice. That choice is not one of the available choices.
即将发生,因为它在创建表单时期望用户的ID而不是用户对象。
据我所知,这是我的观察 -
instance={'data':value}
无法创建表单对象并在其中填充数据,因此is_valid
始终为false,form.errors
也为空。
使用data
参数实际上会创建表单对象。
包含外键字段的模型的模型形式应该用对象的id而不是对象本身来实例化。