【问题标题】:Is Django model validation handled just through the forms API?Django 模型验证是否仅通过表单 API 处理?
【发布时间】:2009-04-30 01:44:12
【问题描述】:

这是创建自定义模型验证的唯一方法吗?使用表格来做到这一点?如果我想通过表单以外的方式向数据库发送数据怎么办?

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    目前 Django 不提供任何模型级别的验证(除了基本的“NOT NULL”、“UNIQUE”和长度验证)。这在 TODO 列表中,但很可能不适合即将发布的 1.1 版本。

    您可以在模型的save() 方法中执行验证相关任务或使用before_save 信号(在信号处理程序中引发异常将导致事务回滚)。

    【讨论】:

      【解决方案2】:

      模型验证将很快在 Django 1.2 版中可用。如果您使用当前的 Django svn checkout of the trunk,它现在就可以使用

      现在可以使用各种clean 方法。详情请见http://docs.djangoproject.com/en/dev/ref/models/instances/#id1

      【讨论】:

        【解决方案3】:

        一般来说,您应该能够通过内置的field types 及其选项或model's meta options 处理您想要的内容。您也可以override the save method 执行验证/清理。如果这还不够,您可以创建自己的field type

        问题在于没有良好的预期行为。应该发生什么?是否应该提出异常?这些字段实际上只是数据库级别的抽象,因此其中的信息不应超过数据库需要知道的信息。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-14
          • 2012-05-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-07
          相关资源
          最近更新 更多