Django DetailView получает одну запись из QuerySet

Пожалуйста, помогите мне получить одну запись из объекта QuerySet. views.py:

from django.contrib.postgres.aggregates import ArrayAgg
from django.http import JsonResponse,
from django.views.generic.list import ListView
from django.views.generic.detail import DetailView
from movies.models import Book

class BooksMixin(ListView):
    model = Book
    http_method_names = ['get']

    def get_queryset(self):
        books = Book.objects.values().annotate(authors=ArrayAgg('authors__name',distinct=True)
        return books

    def render_to_response(self, context, **response_kwargs):
        return JsonResponse(context)

class BooksDetail(BooksMixin, DetailView):

    def get_context_data(self, *, object_list=None, **kwargs):
        queryset = self.get_queryset()
        context = queryset.get(id=self.kwargs['pk'])
        return context

urls.py:

from django.urls import path
from books import views

urlpatterns = [
    path('books/<uuid:pk>/', views.BooksDetail.as_view()),
    ]

Это работает, но я хочу получить одну запись из queryset внутри класса BooksDetail более элегантно, без использования фильтра kwargs['pk']. Я пытался использовать конструкцию типа

class BooksDetail(BooksMixin, DetailView):
    def get_context_data(self, *, object_list=None, **kwargs):
        queryset = self.get_queryset()
        context = super(BooksDetail, self).get_context_data(**kwargs)
        context['bla'] = queryset
        return context

но получил ошибку:

'BooksDetail' object has no attribute 'object'
Вернуться на верх