12

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

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

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

4

5 回答 5

18

我认为这里的正确方法是使用{% 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>
于 2013-04-15T07:34:46.237 回答
13

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

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

虽然你也可以这样做:

<a href="/">Go back home</a>
于 2013-04-15T07:26:08.950 回答
7

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

{{ HTTP_HOST }}

你可以这样做:

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

或者

<a href="{{ HTTP_HOST }}/what_you_want"> back home <a>
于 2014-10-24T17:08:48.027 回答
1

这就是我所做的:

在 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/ 无论您使用的是哪个

于 2018-10-27T19:52:45.090 回答
0

参考标准 Django 示例:

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

然后模板代码:

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

也将工作。

于 2020-10-06T23:20:27.393 回答