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, я думаю.