【发布时间】:2017-05-17 06:01:05
【问题描述】:
我试图在我的自定义模板标签函数中访问request。但它不起作用。
views.py
def candidate(request):
.......
.......
return render(request, template, context)
模板标签
@register.simple_tag(takes_context=True)
def make_url(context, doc_url):
request = context["request"]
protocol = "https://" if request.is_secure() else "http://"
host = request.get_host()
new_url = "%s%s%s" %(protocol, host, doc_url)
return new_url
模板.html
<iframe src="{{ candidate.resume_file.url | make_url }}" frameborder="0"></iframe>
【问题讨论】:
-
什么不起作用?您是否收到任何错误消息?
-
您是在尝试编写自定义模板标签还是自定义过滤器?
-
感谢您的 cmets。抱歉,我遇到了问题。将 register.filter 更改为 register.simple_tag。我替换了这个 {{ Candidate.resume_file.url | html 中带有 {% make_url Candidate.resume_file.url %} 的 make_url }}
-
你不应该在你的问题中将“filter”更改为“simple_tag”......这会让其他人,比如我......感到困惑......
标签: django django-templates django-template-filters