Застрял на два дня на этом NoReverseMatch

Кодирование в Pycharm Django версии 3.2.6

  • Проект hw_v2
  • приложение
    • послепродажное обслуживание
    • ...
  • Шаблоны

URL проекта

urlpatterns = [
    path('', include(('index.urls', 'index'), namespace='index')),
    path('admin/', admin.site.urls),
    path('mkt/', include(('marketing.urls', 'marketing'), namespace='mkt')),
    path('com/', include(('commercial.urls', 'comercial'), namespace='com')),
    path('aft/', include(('aftersales.urls', 'aft'), namespace='aft')),
    path('gen/', include(('general.urls', 'general'), namespace='gen')),
    path('user/',include(('user.urls','user'),namespace='user')),
    path('bootstrapTable/',include('bootstrapTable.urls')),]

URL приложения/послепродажного обслуживания:

urlpatterns = [
path('', views.aft,name='afti'),
path('edit/<int:id>',views.aft_edit,name='aft_edit'),
path('view/<int:id>',views.aft_view,name='aft_view'),]

Ошибка страницы HTML:

<td>
    <a href="{% url 'aft:aft_view' id=itm.id %}" class="lni lni-magnifier"></a>
    <a href="#" class="lni lni-close"></a>
    <a href="{% url 'aft:aft_edit' id=itm.id %}" class="fadeIn animated bx bx-edit-alt"></a>
</td>

Ошибка:

NoReverseMatch at /aft/view/1
    Reverse for 'aft' not found. 'aft' is not a valid view function or pattern name.
    Request Method: GET
    Request URL:    http://127.0.0.1:8000/aft/view/1
    Django Version: 3.2.6
    Exception Type: NoReverseMatch
    Exception Value:    
    Reverse for 'aft' not found. 'aft' is not a valid view function or pattern name.
    Exception Location: D:\0 PROJECTS\14 django_website_ali\hw_v2\venv\lib\site-packages\django\urls\resolvers.py, line 694, in _reverse_with_prefix
    Python Executable:  D:\0 PROJECTS\14 django_website_ali\hw_v2\venv\Scripts\python.exe
    Python Version: 3.9.2
    Python Path:    [WindowsPath('D:/0 PROJECTS/14 django_website_ali/hw_v2'),
'D:\\0 PROJECTS\\14 django_website_ali\\hw_v2\\app',
 'D:\\0 PROJECTS\\14 django_website_ali\\hw_v2',
 'D:\\0 PROJECTS\\14 django_website_ali\\hw_v2',
 'D:\\0 PROJECTS\\14 django_website_ali\\hw_v2\\app',
 'D:\\Program Files\\JetBrains\\PyCharm '
 '2020.1\\plugins\\python\\helpers\\pycharm_display',
 'D:\\Program Files\\Python39\\python39.zip',
 'D:\\Program Files\\Python39\\DLLs',
 'D:\\Program Files\\Python39\\lib',
 'D:\\Program Files\\Python39',
 'D:\\0 PROJECTS\\14 django_website_ali\\hw_v2\\venv',
 'D:\\0 PROJECTS\\14 django_website_ali\\hw_v2\\venv\\lib\\site-packages',
 'D:\\Program Files\\JetBrains\\PyCharm '
 '2020.1\\plugins\\python\\helpers\\pycharm_matplotlib_backend']
Server time:    Fri, 20 Aug 2021 09:01:56 +0800


Я застрял здесь на два дня. Ошибка возникла из ниоткуда. Секунду назад все было в порядке. Потом выскочила ошибка. Я не программист. Кодирование - это просто хобби. У меня нет никого, с кем я мог бы посоветоваться. Поэтому, пожалуйста, спасите меня.

Не видя вашего представления, я не могу быть уверен, но проблема, скорее всего, в вашем шаблоне из-за того, как аргументы передаются в тег шаблона.

<td>
    <a href="{% url 'aft:aft_view' itm.id %}" class="lni lni-magnifier"></a>
    <a href="#" class="lni lni-close"></a>
    <a href="{% url 'aft:aft_edit' itm.id %}" class="fadeIn animated bx bx-edit-alt"></a>
</td>

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

До: id=itm.id

После: itm.id

Обратите внимание, что я проверил это на одном из своих собственных шаблонов, добавив аргументы в виде пар ключ-значение, как в вашем примере, и получил ту же ошибку.

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