Как именно общее представление, такое как 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, обеспечивает масштабируемость?

Вернуться на верх