Django模型验证是通过表单API处理的吗?

时间:2009-04-30 01:44:12

标签: django django-models

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

3 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:5)

模型验证将很快在Django 1.2版中提供。如果你使用当前的主干Django svn结账,它现在可以

现在可以使用各种clean方法。有关详细信息,请参阅http://docs.djangoproject.com/en/dev/ref/models/instances/#id1

答案 2 :(得分:1)

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

问题在于没有良好的预期行为。应该怎么办?应该提出例外吗?这些字段实际上只是数据库级别的抽象,所以不应该有更多的信息,而不是数据库需要知道的信息。