Почему я получаю ошибку NoReverseMatch при работе с проектами для начинающих с github в Django 4.0.6?

Я получаю ошибку NoReverseMatch после добавления первичного ключа к ссылкам URL в файле urls.py. пожалуйста, решите эту проблему. Я новичок в программировании, поэтому не смог найти решение этой проблемы. Спасибо за ваше время и усилия. Я получил это упражнение с Github. Код написан ниже.

settings.py

Отредактируйте файл urls.py:

from django.contrib import admin
from django.urls import path
from g7app.views import CreatePost,View1,View2,EditPost,DeleteView,CreatePost

app_name = 'my_app' #add this line

urlpatterns = [
path('admin/', admin.site.urls),
path("",View1.as_view(),name="home"),
path("post/<int:pk>/",View2.as_view(),name="post_detail"),
path("post/<int:pk>/post_edit/",EditPost.as_view(),name="post_edit"),
path("post/<int:pk>/post_delete/",DeleteView.as_view(),name="post_delete"),
path("post/new/",CreatePost.as_view(),name="post_new"),

]

Отредактируйте файл base.html:

<!DOCTYPE HTML>
<HTML>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>

    <h1>Blog Application</h1>

    {% block c1 %}
        <!-- here I added app_name to url -->
        <h2><a href="{% url 'my_app:post_new' %}">+Create_Post</a></h2>
    {% endblock c1 %}
  </body>
</html>

Отредактируйте свой файл home.html

<!DOCTYPE HTML>

{% extends "base.html" %}

{% block c1 %}

  {% for Student in con1 %}
    <!-- here I added app_name to url -->
    <h2><a href="{% url 'my_app:post_detail' Student.pk %}">{{Student.name}}</a></h2>
    <h4>{{Student.description}}</h4>


  {% endfor %}
{% endblock c1 %}

Отредактируйте свой post_detail.html

{% extends "base.html" %}

{% block c1 %}
    <div>

      <h2>{{con2.name}}</h2>
      <h4>{{con2.description}}</h4>
    </div>
  <!-- here I added app_name to urls -->
  <p><a href="{% url 'my_app:post_edit' Student.pk %}">Edit post</a></p>
  <p><a href="{% url 'my_app:post_delete' Student.pk %}">Delete post</a></p>

{% endblock c1 %}

Надеемся, что это сработает :)

Вернуться на верх