Python 如何在django中外键关系的另一端嵌入筛选器
我的结构如下:Python 如何在django中外键关系的另一端嵌入筛选器,python,django,django-models,Python,Django,Django Models,我的结构如下: class Room(models.Model): doors: BaseManager class Door(models.Model): deleted = models.BooleanField(default=False) room = models.ForeignKey(to=Room, related_name='doors' ) 现在,在我保存了一个房间并保存了一些引用该房间的门之后,我可以加载一个房间并获取房间中的所有门
class Room(models.Model):
doors: BaseManager
class Door(models.Model):
deleted = models.BooleanField(default=False)
room = models.ForeignKey(to=Room, related_name='doors'
)
现在,在我保存了一个房间并保存了一些引用该房间的门之后,我可以加载一个房间并获取房间中的所有门
但是,当我处理room.doors.all()时,我实际上只希望接收那些未被删除(已删除为false)的门
你会如何处理django
更新:对不起,我不太清楚我想要什么
我想要这种行为:一旦我有一个房间的实例,我就用room.doors.all()获取链接到该房间的门-此时,我只想要没有被删除的门。首先在您的
门
模型中添加这一行:
STATUS_CHOICES = (
('deleted', 'deleted'),
('not_deleted', 'not_deleted'),
)
然后,将已删除的模型字段编辑为:
deleted = models.CharField(max_length=1o,choices=STATUS_CHOICES)
然后,您可以通过以下方式访问未删除的门:
Door.not_deleted.all()
而不是调用all()方法。调用filter方法:room.doors.filter(deleted=False)是的,我知道我可以这样做-我不想那样做。我不想让用户知道他们需要关心删除。我希望他们只做一个room.doors.all()也许我不明白你想要什么,但是room.doors.all().filter(deleted=False)=room.doors.filter(deleted=False)。对于room.doors.filter(deleted=False)中的门,应该只为该房间提供未删除的门。