If you want to return mutiple custom validations you need to create a dict
object with fields, '__all__' or 'non_field_errors' as keys
Like v_errors = dict()
v_errors['ra_reference_book'] = {'eic': 'Перевірте корректність коду EIC'}
v_errors['ra_roles'] = [{'end_date_roles': 'Поле повинно мати значення',
'domain': '62Y-MGA-00900--F'}, {'end_date_roles': 'Поле повинно мати
значення', 'domain': '62Y-MGA-02100--C'}]
Then you can do serializers.ValidationError(v_errors)
On Tuesday, 8 June 2021 at 14:19:06 UTC+5:30 [email protected] wrote:
>
> In def validate I'm gathering errors from multiple generic validation.
>
> Before raise.ValidationError(errors), list "errors" looks like the
> following:
>
> [ValidationError({'ra_reference_book': {'eic': 'Перевірте корректність
> коду EIC'}}), ValidationError({'ra_roles': [{'end_date_roles': 'Поле
> повинно мати значення', 'domain': '62Y-MGA-00900--F'}, {'end_date_roles':
> 'Поле повинно мати значення', 'domain': '62Y-MGA-02100--C'}]})]
>
> or without nesting to "ValidationError" we have:
>
> [{'ra_reference_book': {'eic': 'Перевірте корректність коду EIC'}},
> {'ra_roles': [{'end_date_roles': 'Поле повинно мати значення', 'domain':
> '62Y-MGA-00900--F'}, {'end_date_roles': 'Поле повинно мати значення',
> 'domain': '62Y-MGA-02100--C'}]}]
>
>
> However output does not seem to be satisfying in both cases:
>
>
> if errors:
> raise serializers.ValidationError({'details': errors})
>
> {
> "non_field_errors": "{'ra_reference_book': {'eic':
> ErrorDetail(string='Перевірте корректність коду EIC',
> code='invalid')}}\n{'ra_roles': [{'end_date_roles':
> ErrorDetail(string='Поле повинно мати значення', code='invalid'), 'domain':
> ErrorDetail(string='62Y-MGA-00900--F', code='invalid')}, {'end_date_roles':
> ErrorDetail(string='Поле повинно мати значення', code='invalid'), 'domain':
> ErrorDetail(string='62Y-MGA-02100--C', code='invalid')}]}"
> }
>
> or
>
> {
> "details": "{'ra_reference_book': {'eic': ErrorDetail(string='Перевірте
> корректність коду EIC', code='invalid')}}\n{'ra_roles': [{'end_date_roles':
> ErrorDetail(string='Поле повинно мати значення', code='invalid'), 'domain':
> ErrorDetail(string='62Y-MGA-00900--F', code='invalid')}, {'end_date_roles':
> ErrorDetail(string='Поле повинно мати значення', code='invalid'), 'domain':
> ErrorDetail(string='62Y-MGA-02100--C', code='invalid')}]}"
> }
>
> what should be fixed here to show "details"/"non_fields_error" in more
> readable way?
>
--
You received this message because you are subscribed to the Google Groups
"Django REST framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-rest-framework/874030c1-591d-4132-944d-37716c44d5dfn%40googlegroups.com.