Эффективный способ создания динамических 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.
Каким образом лучше всего создать глобальную навигацию с такой структурой?
Спасибо.