Я получаю ошибки набора нескольких запросов в Django

Я работаю над приложением, которое ведет учет предприятий и их работодателей. Вот мой model.py для занятости и бизнеса

class Employment(BaseModel):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    business = models.ForeignKey(Business, on_delete=models.CASCADE)
    role = models.CharField(
        max_length=128, choices=EMPLOYEE_ROLE_CHOICES, default="EMPLOYEE")
    deduction_amount = models.IntegerField(default=0, blank=True)
    email = models.CharField(max_length=1028)
    active = models.BooleanField(default=True)
    account_balance = models.PositiveIntegerField(default=0)

и бизнес

class Business(BaseModel):
    name = models.CharField(max_length=255)
    tax_id = models.CharField(max_length=255, blank=True, default="")
    contact_email = models.CharField(max_length=255)
    contact_first_name = models.CharField(max_length=255)
    contact_last_name = models.CharField(max_length=255)
    contact_phone = models.CharField(max_length=255, blank=True, default="")
    description = models.TextField(blank=True, default="")
    address = models.ForeignKey(
        Address, null=True, blank=True, on_delete=models.CASCADE)
    image = models.ForeignKey("main.Image", null=True,
                              blank=True, on_delete=models.CASCADE)
    json_data = JSONField(blank=True, default=dict)

Я хочу получить идентификаторы всех сотрудников с определенным идентификатором предприятия следующим образом

employees =Employment.objects.filter(business=business, active=True)

но когда я пытаюсь получить id employees.id я получаю ошибку

In [44]: employees =Employment.objects.filter(business=b, active=True)

In [45]: employees.id

<ipython-input-45-5232553f9273> in <module>
----> 1 employees.id

AttributeError: 'QuerySet' object has no attribute 'id'

если я использую get вместо filter, предложенного по этой ссылке. я все равно получаю ошибку

MultipleObjectsReturned: get() returned more than one Employment -- it returned 5!

Что мне делать? Перепробовал все на stackoverflow

Последняя ошибка, которую вы получаете, должна дать вам хороший намек на проблему: вы получаете несколько результатов. Если вы хотите увидеть данные, вы должны выполнить итерацию над ними:

for employee in employees:
    print(employee.id)

Также, если вы хотите получить только все идентификаторы, есть более производительное решение:

ids = list(Employment.objects.filter(business=business, active=True).values_list('id', flat=True))
Вернуться на верх