Django выполняет CRUD на нескольких моделях

Можно ли выполнять CRUD операции над несколькими моделями Django без создания html шаблона и написания функции View для каждой операции. Например, допустим, у вас есть следующая модель:

class Employee(models.Model):
    name = models.CharField()
    age = models.IntegerField()

Для выполнения операций CRUD в этой модели необходимо определить функцию для каждой операции в views.py (4 функции) и создать шаблон для каждой, т.е. create_employee.html, retrieve_employee.html, update_employee.html, delete_employee.html,

Теперь, скажем, вместо одной модели Employee, есть 20 моделей, над которыми вы хотите иметь возможность выполнять CRUD-операции. Нужно ли создавать CRUD-функции для каждой модели в views.py и также создавать шаблон для каждой операции для каждой модели? Или есть более простой способ? Например, создать одну функцию для каждой модели в views.py, которая выполняет операции CRUD, и один шаблон для каждой модели?

Вы можете сделать одно представление для трех операций: CREATE, READ и UPDATE. ModelForm может автоматически делать разницу между созданием и обновлением. для Reading - это просто отображение хранилища данных в modelform с экземпляром. Вы не говорите об операции LIST, для которой нужно другое представление... В некоторых случаях нет необходимости делать форму. Вы можете просто определить атрибут fields в общем представлении тоже

После этого, то, что вы просите, это интерфейс администратора django вместо него. Потому что преимущество разработки каждого представления и формы независимо друг от друга состоит в том, чтобы иметь возможность настроить поведение каждого действия, логика которого не будет автоматически определена в модели в долгосрочной перспективе. Если нет никакой логики, кроме простого CRUD: можно с тем же успехом использовать Django admin, я думаю.

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