Использование фильтра Django Cut в шаблоне с регулярным выражением - PullRequest
0 голосов
/ 06 марта 2019

У меня есть URL, которые заканчиваются именем файла изображения. Я пытаюсь удалить все URL-адреса, кроме имени файла, однако путь URL-адреса может отличаться, поскольку у меня есть изображения в разных каталогах.

Мне интересно, есть ли способ использовать регулярные выражения с фильтром вырезания, поскольку я пока не нашел способа сделать это.

Пример того, что я пытаюсь сделать:

{{ instance.image_url|cut:"/images/products/*/dl_img/" }}'

Где * относится к различным именам каталогов, таким как beds или tables

Есть ли простой способ сделать это в шаблоне?

1 Ответ

3 голосов
/ 06 марта 2019

Вы можете создать свой собственный пользовательский шаблонный фильтр :

# templatetags/cut_re.py
import re 

from django import template
register = template.Library()

@register.filter
def cut_re(value, search): 
    return re.sub(search, "", value)

И затем использовать его как

{% load cut_re %}
{{ instance.image_url|cut_re:"/images/products/.*/dl_img/" }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...