Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.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 如何将signals.py错误消息呈现给django rest API?_Python_Django_Django Rest Framework_Signals - Fatal编程技术网

Python 如何将signals.py错误消息呈现给django rest API?

Python 如何将signals.py错误消息呈现给django rest API?,python,django,django-rest-framework,signals,Python,Django,Django Rest Framework,Signals,我试图将错误消息从Djangosignals.py文件呈现到Django restframeworkviews.py。我像这样创建了views.py文件 class HazardIndexViewSet(视图集.模型视图集): queryset=HazardIndex.objects.all() 序列化器_class=HazardIndexSerializer 权限\u类=[权限.已验证] 我的signals.py文件如下所示: @receiver(post\u save,sender=Haz

我试图将错误消息从Django
signals.py
文件呈现到Django restframework
views.py
。我像这样创建了views.py文件

class HazardIndexViewSet(视图集.模型视图集):
queryset=HazardIndex.objects.all()
序列化器_class=HazardIndexSerializer
权限\u类=[权限.已验证]
我的
signals.py
文件如下所示:

@receiver(post\u save,sender=HazardIndex)
def publish_to_geoserver(实例,已创建,*args,**kwrgs):
尝试:
geo.create\u coveragestore(instance.name,instance.workspace\u name,path=instance.file)
例外情况除外,如e:
实例。删除()
打印(“创建coveragestore时出现问题”)

我希望这个print语句(
print(“创建coveragestore时出现了问题”)
)在API中显示错误消息。另一件事是,我只想在
publish\u to\u geosever
函数成功运行时创建实例。否则,它应该是错误的。有什么帮助吗?

您可以引发rest\u franework异常,以便它出现在API中。这里我使用的是
ValidationError
,因为它在响应中提供了
400
状态代码,并且在正文中它将显示您的打印消息:

来自rest\u framework.exceptions导入验证错误
@接收方(保存后,发送方=HazardIndex)
def publish_to_geoserver(实例,已创建,*args,**kwrgs):
尝试:
geo.create\u coveragestore(instance.name,instance.workspace\u name,path=instance.file)
例外情况除外,如e:
实例。删除()
引发ValidationError(“创建coveragestore时出现问题”)

关于关于成功创建的第二个问题,我想可以保持原样,因为它会尝试创建您的地理对象,如果无法创建,则会在API中引发错误。

感谢您的努力。但它仍然不起作用。异常块正在运行,但错误消息未呈现给django rest API。异常块中的print语句正在工作,但错误没有传递到API。很抱歉,我忘记了代码最后一行的
raise
关键字。你查过了吗?太好了。这就是我需要的东西。非常感谢。