首页 > 解决方案 > 我可以过滤 Django models.ForeignKey 的选择吗?

问题描述

我与模型 Vehicle 和 Accounts 具有多对多关系,并且关联实体 Assignment 将两个表的 PK 都作为 FK。

现在 Accounts 表有一个 is_driver 字段,它采用布尔值,因为默认情况下所有帐户都是通勤者,但有些可以是驱动程序。

有没有办法将我的模型设置为仅过滤 is_driver == True 的帐户?

我的模型.py

class Puv(models.Model):
    plate_number = models.CharField(max_length=50, unique=True)
    temporary_plate = models.BooleanField(default=True) 
    route = models.ForeignKey(Route, on_delete=models.CASCADE, blank=True, null=True)

class Assignment(models.Model):
    driver = models.ForeignKey(User, on_delete=models.CASCADE)
    puv = models.ForeignKey(Puv, on_delete=models.CASCADE)
    assignment_date = models.DateField(auto_now_add=True)

用户模型在一个单独的应用程序中

class User(AbstractBaseUser, PermissionsMixin):
    ....
    is_driver = models.BooleanField(default=False)

标签: djangodjango-models

解决方案



推荐阅读