NoReverseMatch Ошибка для существующего шаблона - PullRequest
0 голосов
/ 25 марта 2020

Я делаю простое приложение для выхода из системы в django. Я получаю ошибку NoReverseMatch, утверждая, что имя шаблона не существует, но оно существует.

Мой каталог проекта выглядит следующим образом:

dryrun_root
  -db.sqlite3
  -manage.py
  -dryrun
    -asgi.py
    -init.py
    -py_cache
    -settings.py
    -urls.py
    -wsgi.py
  -dryapp
    -admin
    -apps.py
    -init.py
    -migrations
    -models.py
    -py_cache
    -static
    -templates
      -base.html
      -dryapp
        -home.html
        -login.html
    -tests.py
    -urls.py
    -views.py

dryapp / views.py

from django.views.generic import TemplateView
from django.shortcuts import render

# Create your views here.
class HomePageView(TemplateView):
    template_name = 'dryapp/home.html'

dryapp / urls.py

from django.conf.urls import url
from .views import HomePageView

app_name="dryapp"

urlpatterns = [
    url('', HomePageView.as_view(), name='_home'),
]

dryapp / templates / dryapp / home. html

{% extends 'base.html' %}

{% block head %}
<title>Home Page</title>
{% endblock %}
{% block body %}
<div class="container">
  <h1>Home</h1>
</div>
<div>
  <small class="text-muted">
    <a class="ml-2" href="{% url 'login' %}">Click here to log in</a>
  </small>
</div>
{% endblock %}

Теперь все выглядит нормально. Но следующий шаблон не.

dryapp / templates / dryapp / login. html


{% block body %}
<div class="container">
  <h1>Welcome!</h1> 
  <p>You can login here.</p>
  <h2>Login</h2>
  <form method="post">
    {{ form.as_p }}
    {% csrf_token %}
    <button type="submit">Login</button>
  </form>
</div>
<div class="border-top pt-3">
  <small class="text-muted">
    No Account? Let's Change That <a class="ml-2" href="{% url '_home' %}">Sign Up</a>
  </small>
</div>
{% endblock %}

Этот шаблон не загружается. Я продолжаю получать

 NoReverseMatch at /login/
Reverse for _home not found. _home is not a valid view or function name.

Я не вижу, что я делаю неправильно из одного шаблона в другой. Любая помощь очень ценится.

1 Ответ

1 голос
/ 25 марта 2020

добавить имя приложения также в шаблон при вызове URL

{% url 'dryapp:_home' %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...