Как разместить ссылки в шаблонах Django - PullRequest
2 голосов
/ 08 июня 2019

ОЧЕНЬ новичок в Django, и я немного растерялся. Я разместил ссылку в моем файле шаблона HTML; однако, щелкнув ссылку, вы получите сообщение об ошибке 404.

Файл приложения 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 ]

3 голосов
/ 08 июня 2019

Первая проблема заключается в том, что оба пути к views.index и views.terms имеют один и тот же путь. В результате вы сделали views.terms недоступным.

Таким образом, вы должны изменить один из путей, например:

from django.urls import path   
from . import views

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

Вам лучше использовать шаблонный тег {% url ... %} [Django-doc] , чтобы разрешить URL-адреса, поскольку, если позже вы решите изменить путь к определенному представлению, вы можете по-прежнему рассчитать путь.

В своем шаблоне вы пишете:

By signing in, you agree to our <a href="<b>{% url 'terms' %}</b>">Terms Of Use Policy</a>
1 голос
/ 08 июня 2019
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...