0

我知道 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 是否为此提供了解决方案,还是我要求太多?

谢谢!

4

0 回答 0