Hey Guys,

Do you have any suggestions on a good way to grab error types during Model 
Validation? I'm not using Forms or HTML. First, here's a simplified snippet 
showing my current format for Model Data Validation.

my_object = MyModel(**data_dict)
try:
    my_object.full_clean()
    my_object.save()
    return SuccessJSONResponse()
except ValidationError, e:
    print e.message_dict # Testing
    # ... build some custom JSON data from the error
    return ErrorJSONResponse(json_data)

This works fine for properly validating the data and being able to print 
out errors. It also allows me to easily see which fields threw errors. 
Unfortunately, it doesn't provide me with the types of errors in a 
"programmatic" fashion as far as I can tell. For example, a field can fail 
because it's a duplicate entry or it can fail because it didn't meet the 
criteria of the field-type (e.g. max_length).

What I'm hoping for is there's a way I can still easily validate my data 
using my Model but get more specific information about the types of errors. 
If it's an IntegrityError then I need to build a custom response indicating 
which field had failed along with an "internal" (to the project) error code 
and a description. If it's some other specific error (for example, maybe an 
email address isn't a "valid" email address) then I'd like to identify the 
error type, field name, and display that error accordingly. Hopefully that 
makes sense :)

I'm not sure if I'm just over-looking something or trying to do things the 
hard way but I'm up for suggestions. Keep in mind that Forms + HTML are out 
of the question since this is an API-only application.

Thanks!
- Kurtis

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-users/-/7CS8sJxLHhwJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to