Как именно общее представление, такое как DeleteView, делает ваше приложение более масштабируемым в Django?
В настоящее время мое приложение построено исключительно на представлениях на основе функций, и я рассматриваю представления на основе классов и особенно общие представления, чтобы сделать его более масштабируемым - так как это рекомендуется во многих местах.
Для представлений, основанных на классах, в целом, я вижу пользу по сравнению с сотнями представлений, основанных на функциях. Однако мне трудно понять, как общие представления помогают сэкономить время. Сейчас я пытаюсь разобраться с DeleteView, и кажется, что это добавляет больше сложности в мой код.
В настоящее время представление удаления для меня выглядит следующим образом:
views.py
def fruit_delete(request, num):
fruit = fruits.objects.filter(pk=num)
fruit.delete()
return redirect(fruits)
И все, что мне нужно добавить - это путь:
urls.py
path('fruit_delete/<int:num>', views.fruit_delete, name='fruit_delete'),
И легко воспроизводимая кнопка в моих шаблонах:
<a class="btn btn-danger" href = "{% url 'fruit_delete' fruit.pk %}"
onclick="return confirm('Are you sure you want to delete this fruit?')">Delete</a>
И это делает свою работу. Однако если мне понадобится сотня или около того таких представлений, было бы полезно иметь возможность использовать модель или другие параметры в качестве аргументов в самом шаблоне вместо того, чтобы создавать отдельный вид + путь для каждого из них. Однако, похоже, это не так, поскольку каждый пример, который я вижу, требует, чтобы модель была объявлена в классе.
Так как же именно общее представление, такое как DeleteView, обеспечивает масштабируемость?