2016-11-29 1 views
0

Можно ли использовать имя метки вместо имя поля в django проверки формы.Джанго проверки: Используйте ярлык поле InstEd имени поля в заблуждении

Например, в недопустимой форме можно было бы получить ошибки, подобные этим:

"passenger_email":["This field is required."] 

Как я могу получить

"Passenger email":["This field is required."] 

ответ

1

Вы можете написать пользовательский обработчик исключений http://www.django-rest-framework.org/api-guide/exceptions/#custom-exception-handling

from rest_framework.views import exception_handler 

def custom_exception_handler(exc, context): 
    view = context['view'] 
    response = exception_handler(exc, context) 
    fields = view.get_serialzer().get_fields() 
    details = {} 
    for k, v in response.data['detail'].items(): 
     try: 
      field = fields[k] 
      label = getattr(field, 'label', '') 
      if label: 
       detail[label] = v 
      else: 
       detail[k] = v 
     except KeyError: 
      detail[k] = v 

    response.data['detail'] = detail 
    return response 
+0

это то, что я в конечном итоге использовала, спасибо! – intelis

0

Я полагаю, вы получите это от form.errors

Так я рекомендую вам не переопределяя form.errors, но делая его копию, потому что вы можете разбить рендеринг ошибок шаблона.

another_errors = {form.fields[field].label: error for field, error in form.errors.items()} 

Я считаю, что сделаю.

Смежные вопросы