Django - ограничить выбор внешним ключом - PullRequest
1 голос
/ 12 апреля 2020

У меня есть следующая модель в Django

class Transfer(models.Model):
    user = models.ForeignKey(User, on_delete=models.PROTECT, limit_choices_to={'is_accepted':True})
    amount = models.IntegerField(default=0)
    transfer_date = models.DateTimeField(default=timezone.now)
    company = models.ForeignKey(Company, on_delete=models.PROTECT)

Я хотел бы отфильтровать пользователей на основе поля is_accepted. Проблема заключается в том, что это поле объявлено в модели, называемой Employee, которая находится в одних отношениях с пользователем. Есть ли возможность получить доступ к полям Сотрудника и отфильтровать их таким образом?

1 Ответ

1 голос
/ 12 апреля 2020

Обычно вы можете определить фильтр как:

class Transfer(models.Model):
    user = models.ForeignKey(
        User,
        on_delete=models.PROTECT,
        <b>limit_choices_to={'employee__is_accepted': True}</b>
    )
    amount = models.IntegerField(default=0)
    transfer_date = models.DateTimeField(default=timezone.now)
    company = models.ForeignKey(Company, on_delete=models.PROTECT)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...