Эффективный способ создания динамических URL из глобальной навигации? Django

Я разрабатываю платформу управления задачами, в которой пользователи могут зарегистрировать проект, а затем создавать задачи для своего проекта. В настоящее время моя структура url выглядит следующим образом:

example.com/customer/project_name/
example.com/customer/project_name/tasks/
example.com/customer/project_name/task-creation/

etc.

project_name берется из модели Project, и я использую соответствие slug, чтобы вернуть соответствующий проект.

Проблема в том, что я не могу придумать, как передать slug имени_проекта, не дублируя навигацию на всех страницах и не делая мои представления излишне сложными. Например, у меня есть и DetailViews, и ListViews, поэтому object.slug не будет работать на всех страницах

Вторая проблема заключается в том, что на дочерних страницах переменная slug меняется с 'slug' на 'project_main'. Если я не ошибаюсь, я считаю, что это изменение необходимо для правильной иерархии. Мой urls.py

app_name = 'projecthome'

urlpatterns = [
    path('invite-registration/', views.invite_registration, name='invite-registration'),
    path('team/', views.team, name='team'),
    path('<slug:slug>/', ProjectDetailView.as_view(), name='project_main'),
    path('<slug:project_main>/tasks/', TaskListView.as_view(), name='tasks'),
    path('<slug:project_main>/tasks/create-task/', CreateTaskView.as_view(), name='task- 
    creation'),
    ]

Для краткости покажу лишь некоторые из них.

Таким образом, object.slug будет работать только в представлении project_main, для других представлений придется использовать object.project_main или object_list.project_main. Хотя, я не уверен, что slug по своей природе находится в контексте для последующих представлений, так как мне удалось заставить его работать только из представления project_main.

Каким образом лучше всего создать глобальную навигацию с такой структурой?

Спасибо.

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