简体   繁体   English

在没有视图的模板中访问请求上下文-Django

[英]Accessing request context in template without view - django

I have the following view that displays the user profile: 我有以下显示用户个人资料的视图:

@login_required
def user_profile(request):
    return render_to_response('registration/profile.html',context_instance=RequestContext(request))

I access the user information through the request.user variable in the template. 我通过模板中的request.user变量访问用户信息。

I was thinking that it might be easier to just have a direct_to_template url, but then the request context won't be there. 我以为,只有一个direct_to_template URL可能会更容易,但是请求上下文就不会出现了。

Is there a better way of doing this? 有更好的方法吗? Thanks 谢谢

Another way is using TemplateView : 另一种方法是使用TemplateView

url(r'^...$', TemplateView.as_view(template_name='registration/profile.html'), name='...'),

However , according to the source code of direct_to_template: 但是 ,根据direct_to_template的源代码:

def direct_to_template(request, template, extra_context=None, mimetype=None, **kwargs):
    """ 
    Render a given template with any extra URL parameters in the context as
    ``{{ params }}``.
    """
    if extra_context is None: extra_context = {}
    dictionary = {'params': kwargs}
    for key, value in extra_context.items():
        if callable(value):
            dictionary[key] = value()
        else:
            dictionary[key] = value
    c = RequestContext(request, dictionary)
    t = loader.get_template(template)
    return HttpResponse(t.render(c), content_type=mimetype)

direct_to_template uses RequestContext. direct_to_template使用RequestContext。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM