如何在Django模板中放置链接

时间:2019-06-08 14:13:30

标签: python django

对于Django非常新,我有些困惑。我已经在我的html模板文件中放置了一个链接;但是,单击链接将报告404错误。

App views.py文件:

from django.shortcuts import render        

def index(request):
    return render(request, "login/index.html", None)

def terms(request):
    return render(request, "login/terms.html", None)

应用urls.py:

from django.urls import path   
from . import views

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

在index.html中令人反感的代码:

By signing in, you agree to our <a href="/login/terms.html">Terms Of Use Policy</a>

点击链接会弹出404错误。当我学习一个新的框架时,任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

第一个问题是views.indexviews.terms的路径共享同一路径。结果,您无法访问views.terms

因此,您应该更改路径之一,例如:

from django.urls import path   
from . import views

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

最好使用{% url ... %} template tag [Django-doc]来解析URL,因为如果以后决定更改某个视图的路径,您仍然可以计算路径。

在模板中,您这样写:

By signing in, you agree to our <a href="{% url 'terms' %}">Terms Of Use Policy</a>

答案 1 :(得分:1)

urlpatterns = [
    path('', views.index, name="index"),
    path('terms/', views.terms, name="terms")
]
By signing in, you agree to our <a href="{% url 'terms' %}">Terms Of Use Policy</a>
or