码迷,mamicode.com
首页 > 其他好文 > 详细

上下文渲染器RequestContext

时间:2017-09-08 00:16:30      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:family   def   func   blog   hit   templates   fun   padding   some   

在render_to_response中加RequestContext会将settings中设置的context_processors返回值收集起来传到模板
return render_to_response(index.html, {...}, context_instance=RequestContext(request))

settings.py

TEMPLATES = [
    {
        BACKEND: django.template.backends.django.DjangoTemplates,
        DIRS: [os.path.join(BASE_DIR, templates)]
        ,
        APP_DIRS: True,
        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,
                BookStore.views.global_settings,
                django.template.context_processors.media,
                BookStore.context_processor.ip_address,

            ],
        },
    },


可以手动写个上下文渲染器(以下摘自自强学堂):新建context_processor.py

添加以下内容

 
def ip_address(request):
    return {ip_address: request.META[REMOTE_ADDR]}
settings.py中加入对应路径,如上面的settings.py加入了‘BookStore.context_processor.ip_address‘

 在模板中就可以使用

{{ ip_address }}

 

https://lincolnloop.com/blog/2008/may/10/getting-requestcontext-your-templates/

这里有如何向render_to_response添加RequestContext的方法。

有个@render_to感觉非常经典,代码如下

def render_to(template_name):
    def renderer(func):
        def wrapper(request, *args, **kw):
            output = func(request, *args, **kw)
            if not isinstance(output, dict):
                return output
            return render_to_response(request, template_name, output)
        return wrapper
    return renderer

@render_to(my_template.html)
def my_view(request):
    # View code here...
    return some_dict

 

 

上下文渲染器RequestContext

标签:family   def   func   blog   hit   templates   fun   padding   some   

原文地址:http://www.cnblogs.com/songbird/p/7492420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!