Как использовать общий вид с переименованным пк

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"
Вернуться на верх