【发布时间】:2015-10-03 11:22:16
【问题描述】:
我正在创建一个 django 应用程序,它同时使用 Django Rest Framework 和普通 django-views 作为用户的入口点。
我想对模型的独立字段和整个对象进行验证。例如:
字段:输入的车牌是基于正则表达式函数的正确车牌。与其他字段无关。
对象:输入的邮政编码对于给定的国家是否有效。与模型中的邮政编码和国家/地区有关。
对于 DRF-API,我使用 ModelSerializers,它会自动调用我放置在模型中的所有验证器,例如:
class MyModel(models.Model):
licence_plate = CharField(max_length=20, validators=[LicencePlateValidator])
由于模型中给出了验证器,API POSTS(因为我使用了 ModelSerializer)以及在 django 管理后端创建的对象都被验证了。
但是当我想引入对象级验证时,我需要在序列化程序的 validate() 方法中进行,这意味着对象仅在 API 中进行验证。
我还必须重写模型的保存方法,以验证在 Django 管理页面中创建的对象。
问题:这对我来说似乎有点混乱,是否有一个地方我可以放置对象级验证器,以便它们在 API 和管理页面中运行,例如我进行了字段级验证(我只需将 它们 放入我的模型声明中,一切都已处理)
【问题讨论】:
标签: python django validation django-rest-framework