Python 如何将signals.py错误消息呈现给django rest API?
我试图将错误消息从DjangoPython 如何将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
signals.py
文件呈现到Django restframeworkviews.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
关键字。你查过了吗?太好了。这就是我需要的东西。非常感谢。