用于删除特定 URL 查询字符串的 Django 自定义模板标签
Django custom template tags to remove specific URL query strings
我正在尝试为删除指定的 URL 查询字符串的 django 模板创建一个简单的标记。它的目的是删除一些应用的过滤,即从 http://localhost/?saved=1&source=news&week=5
中删除 saved=1
我创建了一个自定义标签:
@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 模板中创建了一个 link,它重构了 url 获取参数但删除了指定的键:
<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()
满足我的需要。
我正在尝试为删除指定的 URL 查询字符串的 django 模板创建一个简单的标记。它的目的是删除一些应用的过滤,即从 http://localhost/?saved=1&source=news&week=5
中删除 saved=1我创建了一个自定义标签:
@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 模板中创建了一个 link,它重构了 url 获取参数但删除了指定的键:
<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()
满足我的需要。