繁体   English   中英

Django:如何在模板中获取站点的根路径?

[英]Django: How to get the root path of a site in template?

我想为我的网站设计一个返回主页按钮,以及如何在模板中获取我网站的根路径,以便我可以执行以下操作:

<a href="{{ root_url }}">Go back home</a>

或者我应该首先找出视图中的路径,然后将其传递给模板以通过某些上下文进行渲染。 谢谢。

我认为这里的正确方法是使用{% url %}标签,我假设您的 url conf 中有一个根 url。

网址.py

url(r'^mah_root/$', 'someapp.views.mah_view', name='mah_view'),

然后在您的模板中:

<a href="{% url mah_view %}">Go back home</a>

您应该能够访问请求的get_host()方法:

<a href="http://{{ request.get_host() }}">Go back home</a>

虽然你可能也可以这样做:

<a href="/">Go back home</a>

我发现了一个技巧,使用这个标签:

{{ HTTP_HOST }}

你可以这样做:

<a href="{{ HTTP_HOST }}"> back home <a>

要么

<a href="{{ HTTP_HOST }}/what_you_want"> back home <a>

这就是我所做的:

在 urls.py 中:

from django.contrib import admin
from django.urls import include, path
from django.views.generic import TemplateView

urlpatterns = [
    path('blog/', include('blog.urls')),
    path('admin/', admin.site.urls),
    path('', TemplateView.as_view(template_name='landing.html'), name='landing')
]

那么,无论从哪个角度看:

<a href="{% url 'landing' %}">Site Title</a>

当您单击链接时,这将解析为 localhost:8000/ 或 site.domain.com/,无论您使用的是哪个

参考标准 Django 示例:

urlpatterns = [
    path('', views.index, name='index'),
]

然后模板代码:

href="{% url 'index' %}"

也会起作用。

暂无
暂无

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

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