Как передать url из шаблона в представление в django
Как отправить URL из шаблона в представление? Я заметил, что обычная строка работает, а URL - нет. Вот что я пробовал.
path('imageviewer/<str:theimage>', mainviews.imageviewer, name="imageviewer"),
def imageviewer(request, theimage):
response = render(request, "imageviewer.html", {"theimage": theimage})
return response
Как я пытаюсь передать его : (value.image) - это url
<a href="{% url 'imageviewer' theimage=value.image %}" class="effect-lily tm-post-link tm-pt-60">
Ошибка, которую я получаю:
Reverse for 'imageviewer' with keyword arguments '{'theimage': 'https://storage.googleapis.com/katakata-cb1db.appspot.com/images/humours/1643758561'}' not found. 1 pattern(s) tried: ['imageviewer/(?P<theimage>[^/]+)\\Z']
Спасибо.
Необходимо экранировать изображение, чтобы его можно было использовать в URL, используйте встроенный фильтр urlencode
{% url 'imageviewer' theimage=value.image|urlencode %}
Ваш urlpattern также должен принимать слеши и другие символы, используйте path конвертер вместо str, так как он принимает любую непустую строку
path('imageviewer/<path:theimage>', mainviews.imageviewer, name="imageviewer"),