Django - Можно ли получить объекты "косвенно связанного поля один к одному" с помощью reverse_many_to_one_manager?
Например, у меня есть такие модели:
class Company(models.Model):
name = models.CharField(max_length=100)
class User(AbstractBaseUser):
email = models.EmailField(max_length=250, unique=True)
date_joined = models.DateTimeField(auto_now_add=True)
last_login = models.DateTimeField(auto_now=True)
is_admin = models.BooleanField(default=False)
is_active = models.BooleanField(default=False)
is_staff = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
company = models.ForeignKey(Company, on_delete=models.PROTECT)
is_admin = models.BooleanField(default=False)
Сейчас я могу легко получить все профили для компании, используя следующий запрос:
Company.objects.first().profile_set.all()
Но есть ли способ получить связанных пользователей из компании вместо профиля, учитывая, что объект пользователя один к одному связан с объектом профиля?
Примечание: Эти модели являются лишь примером моделей, и, учитывая логику приложения, мы не можем объединить модель пользователя и модель профиля.
company = Company.objects.get(id=X)
User.objects.filter(profile__company=company)
или создать менеджера на Users:
def from_company(self, company: Company):
return self.filter(profile__company=company)