Как использовать общий вид с переименованным пк
django.views.generic.detail.DetailView
использует pk
или slug
из urls.py
в качестве идентификатора. В моем случае, у меня есть:
urls.py
:
urlpatterns = [
path('<int:quiz_id>/results/', views.ResultsView.as_view()),
]
Есть ли способ использовать:
class ResultsView(generic.DetailView):
model = Quiz
без изменения quiz_id
на pk
(имя по умолчанию, используемое для первичного ключа)?
Я ожидаю, что есть какой-то способ изменить расплывчатое pk
на что-то более описательное.
В ancestors (MRO) перечислены django.views.generic.detail.SingleObjectMixin
. Вы можете переопределить pk_url_kwarg
этого класса , чтобы изменить pk
на quiz_id
:
class ResultsView(generic.DetailView):
model = Quiz
pk_url_kwarg = "quiz_id"