Вам не хватает 2 баллов, поясню Лемм
- Тот факт, что у вас есть модель Coworker, которая не является моделью Пользователь . Я имею в виду, что Coworker - это пользователь. Давайте закодируем эту идею
from django.contrib.auth import get_user_model
User = get_user_model()
class Coworker(models.Model):
..........
user = models.OneToOneField(User...., on_delete=..)
supervisor = models.OneToOneField(User...., on_delete=..) # **
или лучше, если вам нужно несколько супервизоров, удалите строку в ** и создайте эту
class Supervisor(models.Model):
coworker_supervised = models.ForiegnKey(Coworker, on_delete...,related_name='supervisors')
это подразумевает supervisor_instance.corworker_supervised
и coworker.supervisors
или лучше, используйте m2m
, если супервизор может контролировать нескольких пользователей, а у пользователя может быть несколько супервизоров.
- DRY принцип, только не повторяйте себя, у пользователя есть
first_name
, last_name
, если вы хотите full_name
, определите метод для пользователя, который возвращает first_nam
& last_name
сцепленный.
см. этот вопрос.