Создание экземпляра другой модели в менеджере моделей 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). Есть ли лучший способ справиться с этим?

Я решил объединить обе модели в одну. Вторая модель не служит никакой реальной цели в данном случае.

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