У меня есть следующие модели:
class Account(AbstractBaseUser):
username = models.CharField(max_length=40, unique=True)
name = models.CharField(max_length=200, null=True)
is_admin = models.BooleanField(default=False)
is_hiren = models.BooleanField(default=False)
is_manager = models.BooleanField(default=False)
USERNAME_FIELD = 'username'
objects = AccountManager()
class Company(models.Model):
admin = models.ForeignKey(Account, on_delete=models.PROTECT, null=True)
name = models.CharField(max_length=100)
class CompanyDetails(models.Model):
company = models.ForeignKey(Company, on_delete=models.CASCADE)
employee = models.ManyToManyField(Account, related_name='employee')
admin = models.ForeignKey(Account, on_delete=models.PROTECT, null=True)
Предположим, у меня есть 7 объектов учетной записи, один администратор и шесть менеджеров (или сотрудников).Администратор имеет несколько компаний и пять менеджеров назначены в этих компаниях.Одна учетная запись менеджера может быть назначена нескольким компаниям.
Теперь моя проблема в том, как я могу получить все 5 уникальных объектов учетной записи сотрудника?
вот что я попробовал:
@login_required
def employee_list(request):
employees = get_list_or_404(CompanyDetails, admin=request.user)
print(CompanyDetails.objects.filter(employee__in=Account.objects.all()).distinct())