【发布时间】:2011-11-24 09:23:18
【问题描述】:
我创建了一个自定义模板标签,我想在我网站的每个页面上使用它。我在自定义模板标签中有一个函数 get_ip 需要 request 参数才能从用户那里获取 IP 地址。见下文:
myapp/templatetags/header_tags.py
from django import template
register = template.Library()
...
from django.http import HttpResponse
from django.template import RequestContext
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
@register.inclusion_tag('template.html', takes_context = True)
def user_ip(context):
request = context['request']
ip = get_ip(request)
return render_to_response('template.html',locals(), context_instance=RequestContext(request))
template.html
{{ ip }}
my_main_template.html
{% load header_tags %}
{% user_ip %}
由于某种原因,我的 ip 没有在我的主模板上播种。如果在views.py页面模板上使用常规方式,我的函数get_ip可以工作,但由于某种原因没有显示何时从上面的自定义模板标签中使用。有什么想法吗?
【问题讨论】:
标签: django django-views django-templates