2015-01-29 2 views
0

validator = MaxLengthValidator(32)Джанго MaxLengthValidator сообщение об ошибке по умолчанию в строку

Я пытаюсь вернуть сообщение об ошибке для <MaxLengthValidadtor> объекта. Я надеюсь, что есть хорошее сообщение по умолчанию, такое как 'Field length must be less than 32 characters', и в этом случае я бы вернулся validator.message (похоже, это относится к пользовательским валидаторам).

Однако validator.message возвращает объект <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7f8c78ef9320>, который содержит пустые строки в методах, таких как validator.message.title().

Мне что-то не хватает или мне нужно написать собственное сообщение?

+0

взгляд на источник: https://docs.djangoproject.com/en/1.7/_modules/django/core/validators/#MaxValueValidator Он есть хорошее описательное сообщение проверки – karthikr

+0

@ karthikr да, спасибо. Есть ли способ вызова этого сообщения. Я думаю, что 'validator.message' вернет значение сообщения. Я уверен, что мне не хватает чего-то основного. спасибо – user2954587

+0

Нет, как работают валидаторы - они применяются к формам, и когда проверка не выполняется, она автоматически отображает сообщение в поле. – karthikr

ответ

0

Предполагая, что вы делаете это в поле зрения; вот как я получаю ошибки в формате JSON:

if form.is_valid(): 
    # do valid things 
else: 
    return HttpResponse('{"result": "error", "formError": %s}' % json.dumps(dict(form.errors.items())), content_type='application/json') 
Смежные вопросы