如何使用有效的表单数据在数据库中创建对象?

时间:2012-02-08 08:08:40

标签: django

我正在尝试创建一个验证表单的辅助函数。如果表单有效,那么我将在数据库中创建一个对象。该函数接受三个参数,即请求,表单和模型。

def form_validate(request, form, model):
  form = form(request.POST)
  print form
  if form.is_valid():
    print "the form is valid"
    # create object using valid form
  else:
    print "the form is not valid"
    # send back items
    print form.errors.items()

如果表单有效,我想使用表单数据来创建新模型。我该怎么办?我试图查看Django文档(https://docs.djangoproject.com/en/dev/topics/forms/),但我找不到答案。

2 个答案:

答案 0 :(得分:4)

正如David Wolever所说,使用ModelForms是显而易见的方式。

您还可以将cleaning_data字典传递给模型构造函数(假设字段相同):

def form_validate(request, form, model):
    form = form(request.POST)
    print form
    if form.is_valid():
        print "the form is valid"
        obj = model(**form.cleaned_data)
        obj.save()
    else:
        # etc

然而,ModelForms确实是最简单的方法,但您可能有兴趣阅读Django的源代码来了解它们是如何工作的。

答案 1 :(得分:1)