在所有视图中获取请求

时间:2013-03-15 16:12:53

标签: django

如何在我的模板中始终确保“请求”?例如,如果我想在模板中调用以下内容:

request.get_full_path

我总是要把它包含在我的上下文中(在视图中),就像这样....

context = {'form': form,'request':request}
return render_to_response('contacts/group.html', context, context_instance=RequestContext(request))

必须有一种更优雅的方式同时为我的所有视图执行此操作?

1 个答案:

答案 0 :(得分:3)

我刚刚在这里回答了类似的问题:request.path in django template(不能将其标记为重复,因为答案尚未被接受)。

基本上你需要在 settings.py 中定义TEMPLATE_CONTEXT_PROCESSORS变量:

TEMPLATE_CONTEXT_PROCESSORS = (
    // DEFAULT
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    "django.core.context_processors.tz",
    "django.contrib.messages.context_processors.messages",
    // for request
    "django.core.context_processors.request"
)

现在request将在所有模板中提供。