Django-将选择限制为外键

时间:2020-04-12 12:19:28

标签: python django postgresql

我在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的模型中声明的,该模型与用户具有一对一的关系。 是否有可能到达Employee字段并以这种方式过滤它们?

1 个答案:

答案 0 :(得分:1)

您通常可以定义一个过滤器,例如:

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