Я использую стороннюю библиотеку Django google analytics в моем проекте Django. Это позволяет отслеживать на стороне сервера, используя загрузку пиксельного изображения при каждом запросе страницы.
В этом конкретном проекте существуют некоторые шаблоны URL, которые могут содержать специальные (не ascii) символы. Например. example.com/user/яαχєя
Указанная библиотека завершается ошибкой со следующей ошибкой при обнаружении вышеупомянутого uri (фактически iri ):
Кодек 'ascii' не может кодировать символы в позиции 6-10: порядковый номер не в
Диапазон (128)
Я посмотрел на соответствующий код сторонней библиотеки - по сути, это тег шаблона, включенный в мой проект, например:
{% load google_analytics_tags %}
<img src="{% google_analytics %}" width="1" height="1"/>
В коде тег шаблона библиотеки выполняет следующее (отрывок):
from six.moves.urllib.parse import urlparse
@register.simple_tag(takes_context=True)
def google_analytics(context, tracking_code=None, debug=False):
request = context.get('request', None)
path = request.path
parsed_url = urlparse(path)
"""
Some more processing comes here
"""
return url
parsed_url = urlparse(path)
по сути, где проблема возникает. Я чувствую, что патч быстрого исправления / обезьяны - просто отредактировать parsed_url = urlparse(path.encode('utf-8'))
.
Однако, как мне переопределить тег шаблона сторонней библиотеки в моем коде (для достижения вышеупомянутого)? Извиняюсь, если это простой вопрос - я не смог найти документацию, которая решает мою конкретную проблему. Было бы здорово получить иллюстративный ответ.