【问题标题】:Django Forms replacement for Google App Engine (Python)Google App Engine (Python) 的 Django Forms 替代品
【发布时间】:2011-09-18 11:45:35
【问题描述】:

我正在寻找一个 Django Forms 替代品。

我需要基于 Django 中的 GAE 模型的自动构建表单。 Django Forms 可以处理 GAE 上的一些错误。我需要更换它。

我找到了 WTForms。你的选择是什么?

【问题讨论】:

  • 你可能想解释一下为什么你不想使用 Django 表单。
  • 如果我们基于模型构建表单,Django 表单会有很多问题。例如,Django 和 webob 中的请求字典 - 以不同类型的数据呈现,这会引发验证错误。我需要更简单的组件来更轻松地从模型构建表单,并且不会出现意外情况。
  • 所以您想要另一个表单库来让您基于 App Engine 模型构建表单?如果没有,为什么不直接使用没有模型集成的 Django 表单?

标签: python django google-app-engine django-forms


【解决方案1】:

WTForms 在 GAE 上是一个不错的选择。它类似于 django 表单。

另外请注意,除了ModelForms 和相关类型之外,django-forms 在 GAE 上应该可以很好地工作,开箱即用。事实上,这也是 django 在 GAE 上得到支持的原因之一。

【讨论】:

  • 但是我对 Django Forms 有一些问题。例如,如果我在相关领域工作过,这会带来一些麻烦。 (现在我不能说我过去看到了什么错误)。现在我搜索工具以在 GAE 上正常工作。而且我可以轻松扩展一些字段类型。
【解决方案2】:

我也在寻找这个问题的答案。我唯一能找到的是 WTForms。 WTForms 带有一些将模型转换为表单的集成。更具体地说,它在 wtforms.appengine.ext.model_form 中有一个名为 model_form 的东西。有了这个,你可以制作一个表单

form_obj = model_form(ModelClass)

#validate with
form = form_obj(request.POST)
if form.validate()
    mc = ModelClass
    form.populate_obj(mc)
    mc.put()

它不支持新的 ndb-module jet。但大多数东西都适用于小的代码更改。希望它有所帮助。

【讨论】:

  • P.S.代码示例不可插入。populate_obj() 可以在 wtforms root 的表单文件中找到
猜你喜欢
  • 1970-01-01
  • 2010-09-14
  • 1970-01-01
  • 1970-01-01
  • 2011-09-18
  • 2012-11-17
  • 1970-01-01
  • 2014-10-26
  • 2011-05-08
相关资源
最近更新 更多