Вы можете получить доступ к пути с помощью self.request.path
:
class StandingsView(LoginRequiredMixin, TemplateView):
template_name = 'standings.html'
def get_context_data(self, *args, **kwargs):
context = super().get_context_data()
<b>path = self.request.path</b>
# …
return context
Но обработка пути может быть громоздкой и подверженной ошибкам. Вы можете определить пять URL здесь в urls.py
и ввести значения в kwargs, например:
from django.urls import path
from app.views import StandingsView
urlpatterns = [
path('standings/', StandingsView.as_view()<b>, kwargs={'q': None}</b>),
path('standings/q1', StandingsView.as_view()<b>, kwargs={'q': 1}</b>),
path('standings/q2', StandingsView.as_view()<b>, kwargs={'q': 2}</b>),
path('standings/q3', StandingsView.as_view()<b>, kwargs={'q': 3}</b>),
path('standings/q4', StandingsView.as_view()<b>, kwargs={'q': 4}</b>)
]
Затем вы можете получить доступ к добавленным kwargs в self.kwargs['q']
:
class StandingsView(LoginRequiredMixin, TemplateView):
template_name = 'standings.html'
def get_context_data(self, *args, **kwargs):
context = super().get_context_data()
<b>q = self.kwargs['q']</b>
# …
return context
Однако вы, возможно, захотите взглянуть на ListView
[Django -doc] , который может реализовать большую часть шаблонной логики c.