Я немного изменил ответ Ивана (использование метода count()
было неправильным, и мне также нужно использовать slug вместо pk для моего DetailView), поэтому решение было:
from django.shortcuts import redirect
from django.views.generic import ListView
class MyListView(ListView):
def get(self, request, *args, **kwargs):
queryset = self.get_queryset()
if len(queryset) == 1:
return redirect('your_detail_view_url', queryset.first().pk)
return super().get(request, *args, **kwargs)