在Django中创建一个表单对象并运行is_valid方法

时间:2018-04-13 11:53:49

标签: django django-forms django-views

我正在尝试在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()

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。错误Select a valid choice. That choice is not one of the available choices.即将发生,因为它在创建表单时期望用户的ID而不是用户对象。

据我所知,这是我的观察 -

  1. instance={'data':value}无法创建表单对象并在其中填充数据,因此is_valid始终为false,form.errors也为空。

    < / LI>
  2. 使用data参数实际上会创建表单对象。

  3. 包含外键字段的模型的模型形式应该用对象的id而不是对象本身来实例化。