Застрял на два дня на этом 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
Обратите внимание, что я проверил это на одном из своих собственных шаблонов, добавив аргументы в виде пар ключ-значение, как в вашем примере, и получил ту же ошибку.