Как оценить тип объекта для отдельного сообщения в django фреймворке сообщений - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь написать всеобъемлющую структуру обработки и отображения сообщений для Django.

В результате я хочу обрабатывать для сообщений, которые имеют различные типы объектов. Некоторые, может быть, строка, другие, возможно, словарь.

например, рассмотрим этот тривиальный пример

messages.error(request, form.errors.as_json())
messages.warning(request, "error 2")
messages.info(request, 'error 3')

примером ошибки формы может быть.

add_error('username',ValidationError('User does not exist', code=40))

теперь, если вы l oop через словарь сообщений, вы получите следующий вывод на консоль:

{"username": [{"message": "User does not exist", "code": 40}]}
error 2
error 3

Теперь нам просто нужно l oop через словарь сообщений и отформатировать сообщение для отображения. Для этого я планирую использовать фильтр клиентов.

Проблема в том, что при оценке типа объекта сообщения они все возвращаются в виде строк. Даже мысль, что первое сообщение является словарным объектом. print (type(error.message)) возвращает (для всех сообщений) <class 'str'>

Я подозревал, что словарь возвращается в виде строки. '{"username": [{"message": "User does not exist", "code": 40}]}'.

Поэтому я устал от использования literal_eval. Ниже приведен полный черновик фильтра шаблона. как всегда!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...