Нет обратного совпадения в представлении входа в систему Django, ошибка синтаксического анализа шаблона html

У меня проблема с моим приложением django. Мой шаблон base.html может быть проанализирован в определенных представлениях, но не во всех из них, и возвращает код ошибки.

У меня нет большого опыта работы с django, но кажется, что он может анализировать шаблон, когда представления не слишком далеко друг от друга.

У меня также очень плохая структура, но я понятия не имею, как правильно структурировать веб-сайт django.

файл входа (не работает):

<!--hovedside/templates/registration/login.html-->
{% extends "base.html" %}
{% block body %}
<h2>Login</h2>
<form method = "POST">
    {% csrf_token %}
    {{form.as_p}}
    <input type = "submit" value = "Login"></input>
</form>
<a href = "{% url  dashboard %}">Back to dashboard</a>
{% endblock body %}

файл приборной панели (работает):

<!--hovedside/templates/users/dashboard.html-->
{% extends "base.html" %}
{% block body %}
<div class = "default-bodycontainer">
    <h1>Hello, {{ user.username|default:'Guest' }}!</h1>
</div>
{% endblock body %}

Файловая структура шаблонов: шаблоны/базовый html шаблоны/регистрация/логин html шаблоны/пользователи/панель инструментов html

URL-адрес файла Python

from django.urls import path
from django.conf.urls import include, url
from . import views

app_name = "hovedside"
urlpatterns =[
    path("", views.index, name = "index"),
    path("dashboard/", views.dashboard, name = "dashboard"),
    #path("accounts/", include("django.contrib.auth.urls")),
    url(r"^accounts/", include("django.contrib.auth.urls")),
]

проблемная строка из base.html:

<link rel = "icon" href = "{% static 'hovedside/img/favicon.ico' %}">

Это всего лишь первая строка со статикой в ​​html-шаблоне. [Файловая структура][1]

Полный код здесь: https://github.com/lolThinked/Стемдирект

Код ошибки ниже: '''

Environment:


Request Method: GET
Request URL: http://localhost:8000/stemdirekte/accounts/login/

Django Version: 3.1.4
Python Version: 3.6.6
Installed Applications:
['users',
 'hovedside.apps.HovedsideConfig',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']


Template error:
In template C:\Users\Fabian\Desktop\Hopland Digital\Prosjekter\Stemdirekte\mysite\hovedside\templates\base.html, error at line 10
   Reverse for '' not found. '' is not a valid view function or pattern name.
   1 : <!DOCTYPE html>
   2 : <html lang = "en">
   3 : <head>
   4 :     <meta charset = "UTF-8">
   5 :     <meta name = "viewport" content = "width=device-width, initial-scale=1.0">
   6 :     <title>
   7 :         {{page_title}}
   8 :     </title>
   9 :     {% load static %}
   10 :     <link rel = "icon" href = " {% static 'hovedside /img/favicon.ico' %}">
   11 :     <style>
   12 :         @font-face {
   13 :           font-family: 'BERNHC';
   14 :           src: local('BERNHC'),
   15 :                url('{% static "hovedside/fonts/BERNHC.ttf" %}'), format("truetype");
   16 :         }
   17 :         body{
   18 :             font-family: "BERNHC";
   19 :         }
   20 :     </style>


Traceback (most recent call last):
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\core\handlers\base.py", line 202, in _get_response
    response = response.render()
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\response.py", line 105, in render
    self.content = self.rendered_content
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\response.py", line 83, in rendered_content
    return template.render(context, self._request)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\backends\django.py", line 61, in render
    return self.template.render(context)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\base.py", line 170, in render
    return self._render(context)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\base.py", line 162, in _render
    return self.nodelist.render(context)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\base.py", line 938, in render
    bit = node.render_annotated(context)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\base.py", line 905, in render_annotated
    return self.render(context)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\base.py", line 162, in _render
    return self.nodelist.render(context)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\base.py", line 938, in render
    bit = node.render_annotated(context)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\base.py", line 905, in render_annotated
    return self.render(context)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\base.py", line 938, in render
    bit = node.render_annotated(context)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\base.py", line 905, in render_annotated
    return self.render(context)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\template\defaulttags.py", line 446, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\urls\base.py", line 87, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
  File "C:\Users\Fabian\Desktop\Files\Programmering\Stemdirekte\venv\lib\site-packages\django\urls\resolvers.py", line 685, in _reverse_with_prefix
    raise NoReverseMatch(msg)

Exception Type: NoReverseMatch at /stemdirekte/accounts/login/
Exception Value: Reverse for '' not found. '' is not a valid view function or pattern name.

''' [1]: https://i.stack.imgur.com/f9H0E.png

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
167
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Проблема в вашем шаблоне входа. Он пытается использовать значение переменной с именем dashboard, а не строку "dashboard".

<a href = "{% url 'dashboard' %}">Back to dashboard</a>

Отвечать:

<a href = "{% url 'dashboard' %}">Back to dashboard</a>

как указал @schillingt, мне нужно было вместо этого указать на панель инструментов строки.

Другие вопросы:

Это также представило более позднюю проблему, которая, я полагаю, связана с моей структурой, где мне нужно было сослаться на

{% url 'hovedside:dashboard' %}

Затем мне нужно было добавить это не к URL-адресам приложения, а скорее к приложению mysite, потому что включенные ссылки ведут прямо на:

аккаунты/логин

Вместо

стемдирект/аккаунты/логин

Поэтому мне нужно было добавить эти URL-адреса в URL-адреса mysite, установленные следующим образом. мой сайт/urls.py:

from django.contrib import admin
from django.urls import path, include


urlpatterns = [
    path('admin/', admin.site.urls),
    path("stemdirekte/", include("hovedside.urls")),
    path("hovedside/", include("hovedside.urls")),
    path("accounts/", include("django.contrib.auth.urls")),
]

Другие вопросы по теме