如何获取Django模板中的当前url?

我想知道如何获取模板中的当前url。

说我的url是

/user/profile/ 

如何将其返回到模板?

6 Solutions collect form web for “如何获取Django模板中的当前url?”

Django 1.9及以上版本:

 ## template {{ request.path }} {{ request.get_full_path }} 

旧:

 ## settings.py TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.request', ) ## views.py from django.template import * def home(request): return render_to_response('home.html', {}, context_instance=RequestContext(request)) ## template {{ request.path }} 

您可以像这样获取模板中的url:

 <p>URL of this page: {{ request.get_full_path }}</p> 

或通过

{{ request.path }}如果你不需要额外的参数。

一些精度和纠正应该带给海特和Igancio的答案,我将在这里总结整个想法,供将来参考。

如果您需要模板中的requestvariables,则必须将“django.core.context_processors.request”添加到TEMPLATE_CONTEXT_PROCESSORS设置中,默认情况下(Django 1.4)。

你也不能忘记你的应用程序使用的其他上下文处理器。 因此,要将请求添加到其他默认处理器,您可以在设置中添加该请求,以避免对默认处理器列表进行硬编码(在更高版本中可能会发生更改):

 from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP TEMPLATE_CONTEXT_PROCESSORS = TCP + ( 'django.core.context_processors.request', ) 

然后,只要您在回复中发送request内容 ,例如:

 from django.shortcuts import render_to_response from django.template import RequestContext def index(request): return render_to_response( 'user/profile.html', { 'title': 'User profile' }, context_instance=RequestContext(request) ) 

在Django的模板
只需从{{request.path}}获取当前url
用参数{{request.get_full_path}}获取完整的url

注意 :您必须在django TEMPLATE_CONTEXT_PROCESSORS添加request

我想发送到模板的完整请求是有点多余的。 我这样做

 def home(request): app_url = request.path return render(request, 'home.html', {'app_url': app_url}) ##template {{ app_url }} 

这是一个古老的问题,但如果你使用django注册,可以这样简单地总结。

在你的login和注销链接(让你的页面标题说)添加下一个参数的链接将进入login或注销。 你的链接应该是这样的。

 <li><a href="http://www.noobmovies.com/accounts/login/?next={{ request.path | urlencode }}">Log In</a></li> <li><a href="http://www.noobmovies.com/accounts/logout/?next={{ request.path | urlencode }}">Log Out</a></li> 

就是这样,没有别的事情需要去做,注销时他们会立即被redirect到他们所在的页面,login后,他们将填写表单,然后redirect到他们所在的页面。 即使他们错误地尝试login它仍然有效。

其他答案是不正确的,至less在我的情况下。 request.path不提供完整的url,只提供相对的url,例如/paper/53 。 我没有find任何适当的解决scheme,所以我最终硬编码的视图中的url的常量部分,然后连接到request.path

  • 在Django 1.7中运行unit testing时禁用迁移
  • Django CSRF Coo​​kie未设置
  • 在Django项目中放置模板的最佳位置是什么?
  • 我可以使djangopipe理中的list_filter只显示引用的ForeignKeys?
  • 在Django中更改数据库表
  • 你如何在本地开发OpenID
  • Django Rest Framework:创build对象后禁用字段更新
  • Django Rest框架中的用户authentication+ Angular.js Web应用程序
  • 你可以向南迁移吗?
  • Django的工作stream框架
  • 使用Django中的manage.py从CLI中清除数据库最简单的方法是什么?