Проблемы с шаблонами Django Url - PullRequest
0 голосов
/ 05 октября 2019

У меня возникли некоторые трудности с шаблонами URL Django. Я относительно новичок в Джанго. Итак, я пытаюсь привыкнуть к лучшим практикам, когда речь идет о создании приложений с использованием Django. Теперь вот моя проблема. Зачастую, когда я замечал, что два из моих URL-адресов имеют сходство, Django часто путает их, и я должен сделать один из URL-адресов чрезвычайно отличным, чтобы он мог работать. Почему это ? Несмотря на то, что я прямо упомянул, какой URL должна быть опубликована конкретная форма. Вот ошибка, с которой я сталкиваюсь

url(r'book/collection/read/$', ReadBookList.as_view(), name='read_book_list'),
url(r'book/(?P<pk>\w+)/$', BookDetail.as_view(), name='book_detail'),

 <li class="nav-item active">
        <a class="nav-link" href="{% url 'library:read_book_list' %}">
            <i class="fa fa-check-circle"></i>
            <span>Books You Read</span></a>
    </li>

Теперь, когда я перехожу по этой ссылке, она продолжает переходить в подробный вид вместо другой ссылки. Что я могу делать не так? И что является лучшим способом работы с шаблонами URL, чтобы Django не путал отображение с неверным URL. Например, список URL в моем приложении библиотеки

# Book urlpatterns
url(r'book/$', BookList.as_view(), name='book_list'),
url(r'book/add/$', BookCreate.as_view(), name='book_create'),
url(r'book/(?P<pk>\w+)/$', BookDetail.as_view(), name='book_detail'),
url(r'book/(?P<pk>\w+)/edit/$', BookUpdate.as_view(), name='book_update'),
url(r'book/(?P<pk>\w+)/delete/$',BookDelete.as_view(), name='book_delete'),
url(r'book/collection/read/$', ReadBookList.as_view(), name='read_book_list'),
url(r'book/mark/read/$', book_mark_read, name='mark_read'),
url(r'book/search/results/$',BookSearch.as_view(), name='book_search'),
#Book REST API urls
url(r'book/api/v1/$', BookListApi.as_view(), name='api_book_list'),
url(r'book/api/v1/(?P<pk>\w+)/$', BookDetailApi.as_view(), name='api_book_detail'),

Журнал ошибок

NoReverseMatch at /library/book/collection/read/
Reverse for 'book_detail' with arguments '('',)' not found. 1 pattern(s) tried: ['library/book/(?P<pk>\\w+)/$']
Request Method: GET
Request URL:    http://127.0.0.1:8000/library/book/collection/read/
Django Version: 1.11.10
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'book_detail' with arguments '('',)' not found. 1 pattern(s) tried: ['library/book/(?P<pk>\\w+)/$']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...