Ошибка Django Breadcrumb: Reverse for 'projectnotes_list' with no arguments not found

Я пытаюсь использовать django-views-breadcrumbs для добавления хлебных крошек на сайт. Я могу заставить его работать с некоторыми представлениями, но я получаю ошибку с определенным представлением списка. Когда я пытаюсь посетить страницу этого представления, я вижу ошибку.

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

Ошибка:

NoReverseMatch at /projects/project/1/notes/
Reverse for 'projectnotes_list' with no arguments not found. 1 pattern(s) tried: ['projects/project/(?P<pk>[0-9]+)/notes/\\Z']
Request Method: GET
Request URL:    http://co1.localhost:8000/projects/project/1/notes/
Django Version: 3.1.14
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'projectnotes_list' with no arguments not found. 1 pattern(s) tried: ['projects/project/(?P<pk>[0-9]+)/notes/\\Z']
Exception Location: /Users/user/.local/share/virtualenvs/osite-wGphEfbP/lib/python3.9/site-packages/django/urls/resolvers.py, line 689, in _reverse_with_prefix
Python Executable:  /Users/user/.local/share/virtualenvs/osite-wGphEfbP/bin/python
Python Version: 3.9.6
Python Path:    
['/Users/user/Desktop/otools',
 '/Library/Frameworks/Python.framework/Versions/3.9/lib/python39.zip',
 '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9',
 '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload',
 '/Users/user/.local/share/virtualenvs/osite-wGphEfbP/lib/python3.9/site-packages']
Server time:    Sun, 20 Feb 2022 15:52:17 +0000

Представление списка:

class ProjectNotesList(ListBreadcrumbMixin,ListView):
    model = ProjectNotes
    template_name = 'company_accounts/project_notes.html'
    comments = ProjectNotes.comments


    def related_project(self, **kwargs):
        project = get_object_or_404(Project, id=self.kwargs.get('pk'))
        notes = ProjectNotes.objects.all
        return notes

    def get_context_data(self, **kwargs):
        # Call the base implementation first to get a context
        context = super().get_context_data(**kwargs)

        context['project'] = get_object_or_404(Project, id=self.kwargs.get('pk'))
        return context



    commentscount = ProjectNotes.objects.annotate(num_comments=Count('comments'))

Урлы.py

from django.urls import path, include
from .views import CompanyProjects, CompanyProjectsDetailView, TodoCreateView, ProjectNotesList, ProjectNotesCreateView, ProjectCreateView, ProjectNotesDetailView, CompanyCompletedProjects, CompanyPausedProjects, TodosList, ProjectTodosDetailView, ProjectDocumentsList, ProjectDocumentsCreateView, ProjectDocumentsDetailView
from . import views

app_name = 'company_project'

urlpatterns = [
    path('', CompanyProjects.as_view(), name='project_list'),
    path('completed_projects', CompanyCompletedProjects.as_view(), name='completed_projects'),
    path('paused_projects', CompanyPausedProjects.as_view(), name='paused_projects'),
    path('add_project/', ProjectCreateView.as_view(), name='add_project'),
    path('project/<int:pk>/', CompanyProjectsDetailView.as_view(), name='project_detail'),
    path('project/<int:pk>/todos/', TodosList.as_view(), name='project_todos'),
    path('project/<int:project_pk>/todo/<int:pk>/', ProjectTodosDetailView.as_view(), name='project_todo_detail'),
    path('project/<int:pk>/add_todo/', TodoCreateView.as_view(), name='add_todo'),
    path('project/<int:pk>/add_project_note/', ProjectNotesCreateView.as_view(), name='add_project_note'),
    path('project/<int:pk>/notes/', ProjectNotesList.as_view(), name='projectnotes_list'),
    #path('note/<int:pk>/add_project_note_comment/', ProjectNotesCommentCreateView.as_view(),
     #    name='add_project_note_comment'),
    path('project/<int:project_pk>/note/<int:pk>/', ProjectNotesDetailView.as_view(), name='project_note_detail'),
    path('project/<int:pk>/documents/', ProjectDocumentsList.as_view(), name='project_documents'),
    path('project/<int:pk>/add_project_document/', ProjectDocumentsCreateView.as_view(), name='add_project_document'),
    path('project/<int:project_pk>/document/<int:pk>/', ProjectDocumentsDetailView.as_view(), name='project_document_detail'),

]

Шаблоны базы и страниц:

В комплекте с приложением breadcrumb идет демонстрация, которая дает некоторое представление. Однако я не смог понять, как добавить необходимый контекст, используя код из демонстрации. Код демонстрации:

class TestListsView(ListBreadcrumbMixin, ListView):
    model = TestModel
    template_name = "demo/test-list.html"

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        view_paths = []

        for instance in self.object_list:
            view_paths.append(
                (
                    instance.name,
                    detail_instance_view_url(instance),
                ),
            )
        context["view_paths"] = view_paths
        return context
Вернуться на верх