2016-11-29 60 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()} 

我相信会做。