2016-11-29 39 views
0

insted的字段名稱是否可以使用標籤名稱,而不是字段名django表單驗證。Django的驗證:使用字段標籤錯誤

例如,在無效的形式可能會取得的錯誤這樣的:

"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()} 

我相信會做。