Создание экземпляра другой модели в менеджере моделей Django
У меня есть две модели django, определенные в моем файле models.py - модель Employee и модель ContactBook, как показано ниже:
class Employee(FatCrocBaseModel):
code = models.IntegerField()
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
objects = EmployeeManager()
class ContactBook(FatCrocBaseModel):
employee = models.OneToOneField(Employee, on_delete=models.CASCADE)
Я пытаюсь создать пользовательский ModelManager под названием EmployeeManager, в котором объект ContactBook автоматически создается для каждого сотрудника (связь один-к-одному) каждый раз, когда создается новый сотрудник. Код для ModelManager, который я придумал, выглядит следующим образом:
class EmployeeManager(models.Manager):
def create(self, *args, **kwargs):
employee = super(EmployeeManager, self).create(*args, **kwargs)
ContactBook.objects.create(employee=employee)
return employee
Я начинающий программист в Django и хотел бы узнать, является ли вышеописанное приемлемой практикой в Django (создание ContactBook из EmployeeManager). Есть ли лучший способ справиться с этим?
Я решил объединить обе модели в одну. Вторая модель не служит никакой реальной цели в данном случае.