37👍
Pass it through str()
first.
response_dict.update({'error': str(e)})
Also note that certain exception classes may have specific attributes that give the exact error.
3👍
Everything about str
is correct, yet another answer: an Exception
instance has message
attribute, and you may want to use it (if your customized IntegrityError
doesn’t do something special):
except IntegrityError, e: #contains my own custom exception raising with custom messages.
response_dict.update({'error': e.message})
- [Django]-Django: Display Choice Value
- [Django]-Django: How to get current user in admin forms?
- [Django]-Django post_save() signal implementation
3👍
You should use unicode
instead of string
if you are going to translate your application.
BTW, Im case you’re using json because of an Ajax request, I suggest you to send errors back with HttpResponseServerError
rather than HttpResponse
:
from django.http import HttpResponse, HttpResponseServerError
response_dict = {} # contains info to response under a django view.
try:
plan.save()
response_dict.update({'plan_id': plan.id})
except IntegrityError, e: #contains my own custom exception raising with custom messages.
return HttpResponseServerError(unicode(e))
return HttpResponse(json.dumps(response_dict), mimetype="application/json")
and then manage errors in your Ajax procedure.
If you wish I can post some sample code.
- [Django]-How to add multiple arguments to my custom template filter in a django template?
- [Django]-Django delete superuser
- [Django]-Django 1.7 migrations won't recreate a dropped table, why?
1👍
Suppose you raise error like this
raise someError("some error message")
and ‘e’ is catched error instance
str(e) returns:
[ErrorDetail(string='some error message', code='invalid')]
but if you want "some error message" only
e.detail
will gives you that (actually gives you a list of str which includes "some error message")
- [Django]-Django — How to have a project wide templatetags shared among all my apps in that project
- [Django]-Passing objects from Django to Javascript DOM
- [Django]-Iterating through two lists in Django templates
-1👍
This works for me:
def getExceptionMessageFromResponse( oResponse ):
#
'''
exception message is burried in the response object,
here is my struggle to get it out
'''
#
l = oResponse.__dict__['context']
#
oLast = l[-1]
#
dLast = oLast.dicts[-1]
#
return dLast.get( 'exception' )
- [Django]-How to set a value of a variable inside a template code?
- [Django]-Django migrations – workflow with multiple dev branches
- [Django]-Do CSRF attacks apply to API's?