我有一个模型,其pre_save()信号通过以下方式连接到删除服务(json,REST等):
错误响应采用以下形式:
https
然后本地模型pre_save信号会引发{'local_model_field': [u'This element already exists']}
:
ValidationError
这很好用。
现在,在django管理员上,当我尝试模拟已经存在的对象的远程插入时,我得到一个500页,这很好但不理想。
有没有办法让pre_save()出现错误气泡一直到raise ValidationError(json_response['local_model_field'][0])
并显示为标准错误消息,填充相关内容?
我尝试了以下但无济于事:
ModelAdmin
def changeform_view(self, request, object_id=None, form_url='', extra_context=None):
"""
trying to display the right message when pre_save() fails on model save() method (after asking CC)
"""
try:
return super(ObjectAdmin, self).changeform_view(request, object_id, form_url, extra_context)
except IntegrityError as e:
self.message_user(request, e, level=messages.ERROR)
return HttpResponseRedirect(form_url)
是正确的做法吗?知道ValidationError
必须锁定任何以本地和远程重复方式结束的机会。主要原因是本地/远程对象创建可以由管理员创建,也可以从其他网站实例/类型(例如,前端,最终用户)进行。
由于