Технически и ListView, и DetailView не совпадают. Например, вы не можете указать путь для DetailView, как показано ниже в urls.py,
path('schools_detail/',views.SchoolDetailView.as_view(),name = "detail"),
Это приведет к ошибке ниже,
Общий подробный вид SchoolDetailView должен вызываться с объектом pk или слагом в URLconf.
Это означает, что если у нас есть таблица с именем Student и другая таблица с именем School,мы можем использовать ListView, чтобы перечислить все школы, как показано ниже,
path('list/',views.SchoolListView.as_view(),name = "list"),
И если мы хотим перечислить сведения о школах для отдельной школы, когда мы нажимаем значок школы, то мы можем использовать первичный ключШкола, которую Django создает внутренне и записывает в шаблон URL, в моем случае шаблон URL будет «list / {{school.id}}», поэтому для захвата этого мы должны указать путь, как показано ниже для DetailsView,
path('list/<int:pk>/',views.SchoolDetailView.as_view(),name = "detail"),
Итак, в итоге вы можете использовать ListView в качестве обычного представления для большинства случаев, если вы хотите получить доступ к другому View, но только к определеннойВ этом View, который ссылается на первичный ключ, вы можете использовать DetailsView (шаблон url для DetailsView будет сгенерирован путем предоставления информации первичного ключа в URL, без первичного ключа в URL, который он не будет работать, так как он не будет принимать всевместо этого информация будет принимать только информацию, относящуюся к первичному ключу в URL)