我正在使用Django 2.2.5。使用添加自定义模板标签的默认方法不起作用(创建文件夹templatetags
,__init__
和tags
python文件)。
@register.simple_tag
def url_replace(request, field, value):
dict_ = request.GET.copy()
dict_[field] = value
return dict_.urlencode()
试图将其添加到选项-项目开始,但仍然'unresolved library'
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
'libraries': {
'replace_url': 'templatetags.replace_url',
}
replace_url
-是python文件。
{% load replace_url %}
in html。
django 2.2是否有特殊功能?
答案 0 :(得分:0)
your_app/
__init__.py
models.py
...
templatetags/
__init__.py
your_tags.py
这样,您可以安排文件夹,然后在模板中调用它,如下所示:
{% load your_tags %}
{% url_replace %}
答案 1 :(得分:0)
您发布的代码中的标记名称是url_replace,但是您尝试加载到模板中的标记是replace_url ...是模板中的标记应改为url_replace吗?
答案 2 :(得分:0)
您是否尝试过更换
page.
使用
'replace_url': 'templatetags.replace_url',
它可能需要指向模块的完整点划线...