【问题标题】:Django Dynamic FormsDjango 动态表单
【发布时间】:2009-12-01 12:06:23
【问题描述】:

我正在使用James Bennetts code 创建一个动态表单。我一切正常,但想将数据保存到数据库中。有没有人有任何代码可以做到这一点,或者可以告诉我最好的方法是什么?模型应该如何设置等?

【问题讨论】:

  • 您必须向我们展示一些代码来帮助您 - 比如您使用 forms.Form 或 forms.ModelForm。不过,在大多数情况下,使用前者,您可以为表单定义一个 save() 方法并从 clean_data 访问数据。
  • 我使用的代码直接复制自 James Bennett 的文章(见上一行)。它既不使用forms.form也不使用forms.modelform,它会自动动态生成表单元素,然后我想将其添加到数据库中

标签: django forms dynamic


【解决方案1】:

覆盖表单类上的save() 方法:

def save(self):
    new_user = User.objects.create_user(username=self.cleaned_data['username'],
                                        email=self.cleaned_data['email'],
                                        password=self.cleaned_data['password1'])
    return new_user

(取自 James Bennett 的博客Newforms, part 2

【讨论】:

  • 我没有要覆盖的对象,因为它每次都不同并且是动态生成的
  • 我认为你的代码是基于他的make_contact_form 版本,它使用type 生成类?
  • 是的,没错。我计划扩展他的代码,而不是硬编码需要哪些表单元素,我将从用户填充的数据库表中提取它们
猜你喜欢
  • 2016-08-13
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 2013-10-14
  • 2012-07-28
  • 2016-11-11
  • 2012-01-24
  • 2011-09-03
相关资源
最近更新 更多