django - django 模板标签缺少 1 个必需的位置参数:值
问题描述
在我的 django 项目中,我有自定义模板标签来在分页中设置正确的下一个链接:
@register.tag(name='url_replace')
def url_replace(request, field, value):
print('this is form tag',request,field,value)
d = request.GET.copy()
d[field] = value
return d.urlencode()
在我的模板中:
{% if is_paginated %}
<ul class="pagination pull-right">
{% if page_obj.has_previous %}
<li><a href="?{% url_replace request 'page' page_obj.previous_page_number %}">«</a></li>
{% else %}
<li class="disabled"><span>«</span></li>
{% endif %}
{% for i in paginator.page_range %}
{% if page_obj.number == i %}
<li class="active"><span>{{ i }} <span class="sr-only">(current)</span></span></li>
{% else %}
<li><a href="?{% url_replace request 'page' i %}">{{ i }}</a></li>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<li><a href="?{% url_replace request 'page' page_obj.next_page_number %}">»</a></li>
{% else %}
<li class="disabled"><span>»</span></li>
{% endif %}
</ul>
{% endif %}
看起来一切都很好,但它向我显示错误
异常值:
url_replace() 缺少 1 个必需的位置参数:'value'
当我通过了所有三个参数时,我无法找出问题所在!
解决方案
将 更改@register.tag
为@register.simple_tag
。@register.tag 有点复杂
比较 https://docs.djangoproject.com/en/2.0/howto/custom-template-tags/#django.template.Library.simple_tag 与 https://docs.djangoproject.com/en/2.0/howto/custom-模板标签/#registering-the-tag
推荐阅读
- python - 如何将图像保存在 django 数据库中?
- angular - 使用翻译的数组列表的 ForEach 控制台错误
- xamarin.forms - 使用 iPhone 12 Pro Max 时应用程序在闪屏中崩溃
- wordpress - 可以从我的 PC 访问 Wordpress 仪表板,但在我的笔记本电脑上重定向到 404
- bash - bash脚本从文件名创建文件夹并将两种文件移动到其中
- python - Pandas 重命名列时,遇到键错误
- python - 如何对数据框进行困难的计算
- c - 如何在 C 中打印 ASN.1 UPER 消息字段的字段?
- javascript - Vue js 将外部脚本文件添加到我的应用程序
- r - dplyr semi_join 错误:`x` 和 `y` 必须共享同一个 src,设置 `copy` = TRUE(可能很慢)