Django没有小部件

时间:2013-06-19 12:16:51

标签: django django-forms

我知道Django想要自动生成表单,所以你不必在你的模板中这样做,我知道很多人都觉得很酷。

但我有特定的要求,我必须自己编写表格。我只需要一些东西来解析数据,无论是使用用户界面提交的表单,还是API请求,或其他什么。

我尝试使用ModelForm,但似乎无法正常工作。

我想要有以下行为:

  • 可以指定我要创建/更新的对象的模型
  • 在更新时指定对象的可能性
  • 在字典中提供新数据的可能性
    • 如果我正在创建一个新对象,我的数据中缺少的字段应该替换为我的模型定义中指定的默认值
    • 如果我要更新现有对象,我的数据中缺少的字段应该替换为我正在更新的对象的当前值。另一种说法是,不要更新我的数据字典中缺少的值。
  • 应在调用save()之前执行数据验证,并且应该使用错误字段和错误列表抛出ValidationError

目前,我更喜欢手动完成所有事情:

o = myapp.models.MyModel() # or o = myapp.Models.MyModel.objects.get(pk = data['pk'])
o.field1 = data['field1']
o.field2 = data['field2']
…
o.full_clean()
o.save()

有一条快捷方式会很好:

o = SuperCoolForm(myapp.models.MyModel, data)
o.save()

你知道Django是否为此提供了解决方案,还是我要求的太多了?

谢谢!

0 个答案:

没有答案