Теги пользовательских шаблонов Django для удаления определенных строк запросов URL

Я пытаюсь создать простой тег для шаблона django, который удаляет указанную строку запроса URL. Его цель - удалить некоторые примененные фильтры, т.е. удалить saved=1 из http://localhost/?saved=1&source=news&week=5

Я создал пользовательский тег:

@register.simple_tag(takes_context=True)
def defilter(context, *args):
    query = context['request'].GET.copy()
    for key in args:
        if key in query.keys():
            query.pop(key)
    return query.urlencode()

Затем я создал ссылку в шаблоне django, которая реконструирует параметры url get, но удаляет указанный ключ:

<a href="{% url 'articles' %}?{% defilter saved %}">Remove Saved</a>

Есть идеи, почему это не работает так, как я ожидаю? Я не получаю никаких ошибок, он просто не удаляет указанный ключ.

Большое спасибо

Я отвечу на свой собственный вопрос для потомков. В итоге я перешел от kwargs к одному arg.

@register.simple_tag(takes_context=True)
def defilter(context, field):
    query = context['request'].GET.copy()
    if query.get(field):
        query.pop(field)
    return query.urlencode()

Работает для того, что мне нужно.

Вернуться на верх