0

我知道下面的函数可以用来做一些预保存处理。但是,如何访问请求数据,例如请求中的文本字段值以进行验证?

    def save_model(self, request, obj, form, change):
        # do something for validation 
        obj.save()
4

2 回答 2

3

原始请求数据通常存储在request.POST中。访问 可能更好form.cleaned_data,因为 Django 已经验证了它。

但是,该save_model方法可能不是进行验证的正确位置。如果您提出 a ValidationError,则不会捕获异常,并且用户将获得 500 服务器错误页面。当您知道数据已经有效时,该save_model方法更合适,例如在保存之前设置对象的作者request.user

如果你想进行自定义验证,更好的方法是定义一个模型表单,并在你的模型管理中使用它的ModelAdmin.form设置。

于 2012-06-14T13:50:19.397 回答
0

自定义表单验证

这也帮助了我很多!

于 2012-06-15T06:31:20.237 回答