@stilet69
программист

Как в django сформировать динамическую строку запроса в шаблоне?

Есть некая страница со списком статей основанная на ListView
Я добавил несколько блоков гиперссылок, для сортировки и вывода статей например:
Блок 1
Подробно|Кратко

Блок 2
За день|За неделю|За месяц

Блок 3 (количество статей на страницу)
10|20|50

Параметры вывода передаю в строке запроса:
article/?sort=table&pag=10&date=week

я попробовал сделать через
@register.simple_tag
def dinamic(value, str_filtre, str_value):


формируя в шаблоне что то вроде:
<a href="{% url 'article:list' %}{% dinamic request.get_full_path "sort" "list" %}">полно</a>|

но не выходит золотая рыбка... параметры задваиваются при нажатии два раза на одном блоке, например (по дате)
article/?sort=table&pag=15&date=week&date=month
подскажите способ формирования таких ссылок. Бросьте пример.. Буду благодарен
  • Вопрос задан
  • 167 просмотров
Пригласить эксперта
Ответы на вопрос 2
Astrohas
@Astrohas
Python/Django Developer
Хм в dinamic-e заменят не пробовали? Юзаете https://docs.python.org/3/library/urllib.parse.htm...
Ответ написан
Комментировать
Формировать урлы для текущей страницы можно примерно так.

@register.simple_tag(takes_context=True)
def dinamic(context, **kwargs):
    request = context['request']
    qparams = request.GET.dict()
    qparams.update(**kwargs)
    return '{}?{}'.format(request.path_info,
                          urlencode(qparams))


{% dinamic param1='value1' %}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы