Джанго: нореверсематч в /пациент/1/

#html #django

Вопрос:

У меня есть это urls.py в приложении кабинета:

 urlpatterns = [
    path('', views.index, name='index'),
    path('register_patient/', views.registerPatient,name='register_patient'),
    path('register_booking/', views.registerBooking,name='register_booking'),
    path('register_visit/<int:id>/', views.registerVisit,name='register_visit'),
    path('<int:id>/', views.detail_patient),
]
 

перед добавлением 4 path('register_visit/<<int:id>>/'), views.detail_patient -го пути он работал хорошо, но теперь, когда я добавляю этот 4-й путь views.detail_patient , он не работал, и я получаю эту ошибку:

NoReverseMatch at /patient/1/

Так что моя проблема заключается в том, что я не могу использовать <<int:id>> больше, чем один раз в моем коде у меня есть индекс, который показывает список больных, и каждого больного есть кнопка «Дополнительно», который отвезет меня в 5-м path(('<<int:id>>/', views.detail_patient)) и в этом шаблоне у меня есть кнопка ‘Нувель хирургиипринять меня 4-й path(('register_visit/<<int:id>>/', views.registerVisit,name='register_visit')) . В index.html это кнопка «Подробности»:

 <a href="{{field.id}}/" class="btn btn-warning">Details</a>
 

И в detail_patient.html это кнопка «Новая хирургия»

 <a href="{% url 'register_visit' %}{{patients.id}}" class="btn btn-primary">Nouvelle Chirurgie</a>
 

Как исправить эту ошибку?

Ответ №1:

измените это

 <a href="{% url 'register_visit' %}{{patients.id}}" class="btn btn-primary">Nouvelle Chirurgie</a>
 

Для

 <a href="{% url 'register_visit' patients.id %}" class="btn btn-primary">Nouvelle Chirurgie</a>
 

я надеюсь, что patients не является набором запросов, если это так, вам следует повторить его с помощью forloop, чтобы этот код работал выше.
urls.py:

 urlpatterns = [
    path('', views.index, name='index'),
    path('register_patient/', views.registerPatient,name='register_patient'),
    path('register_booking/', views.registerBooking,name='register_booking'),
    path('register_visit/<int:id>/', views.registerVisit,name='register_visit'),
    path('<int:id>/', views.detail_patient,name='detail_patient'),
]
 

в detail_patient я добавил имя=’detail_patient’.

 <a href="{% url 'detail_patient' field.id %}" class="btn btn-warning">Details</a>
 

field.id это просто пример, который вы должны заменить нужным экземпляром.

Комментарии:

1. Идеально, ваше решение работает хорошо, большое вам спасибо. Мне жаль, что я не могу принять ваше решение, потому что у меня еще нет 15 репутации

2. @AkramBaklouti я рад, что смог вам помочь)