Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django.db模型发送给管理员的Django错误消息_Python_Django_Django Models_Django Rest Framework_Django Admin - Fatal编程技术网

Python Django.db模型发送给管理员的Django错误消息

Python Django.db模型发送给管理员的Django错误消息,python,django,django-models,django-rest-framework,django-admin,Python,Django,Django Models,Django Rest Framework,Django Admin,我正在使用DRF创建一个API后端。现在,我想在从管理员保存模型时强制执行某些验证规则。我使用的是viewset,从rest框架调用时可以覆盖。但是当我通过重写save()方法来验证模型时,它不能向管理员发送任何错误消息,因为它没有任何请求参数。场景如下: from django.db import models class PatientCaregiver(models.Model): name = models.CharField(max_length=200, null=

我正在使用DRF创建一个API后端。现在,我想在从管理员保存模型时强制执行某些验证规则。我使用的是
viewset
,从rest框架调用时可以覆盖。但是当我通过重写
save()
方法来验证模型时,它不能向管理员发送任何错误消息,因为它没有任何
请求
参数。场景如下:

from django.db import models

class PatientCaregiver(models.Model):    
    name = models.CharField(max_length=200, null=True, blank=True)
    email = models.CharField(max_length=200, null=True, blank=True)

    def save(self, *args, **kwargs):
        # do some processing
        # return some error or success msg(how?)
我知道我可以用以下代码发送错误消息:

from django.contrib import messages
messages.error(request,'Error message')

但是您可以看到,在我的save()模型中,我没有request参数。因此,如何从save()模型向管理员发送任何错误消息?

正确的处理方法是在
save
中引发异常,在视图中捕获它并在那里添加消息代码。

但是为什么需要在模型保存方法中显示该错误消息呢?因为当从django管理员执行请求时,请求会到达该位置。我想我不能使用视图来处理管理操作。我可以吗?但我如何在视图中超越管理操作?我不知道有没有办法。