python - 如何在django中的外键关系的另一端嵌入过滤器
问题描述
我有以下结构:
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() 时,我实际上只想接收那些未删除的门(已删除为假的门)。
你会如何用 django 做到这一点?
更新:对不起,我不太清楚我想要什么......
我想要这种行为:一旦我有一个房间的实例,我就去用 room.doors.all() 获取链接到那个房间的门——此时我只想要没有被删除的门。
解决方案
Door
首先在您的模型中添加这一行:
STATUS_CHOICES = (
('deleted', 'deleted'),
('not_deleted', 'not_deleted'),
)
然后,将您的deleted
模型字段编辑为:
deleted = models.CharField(max_length=1o,choices=STATUS_CHOICES)
然后,您可以使用以下命令访问未删除的门:
Door.not_deleted.all()
推荐阅读
- node.js - Typegoose 道具不保存
- r - 在R中的数据框列表上应用自定义函数
- r - full_join 在 r 中添加额外的行和 NA
- terraform - Terraform 中的动态 JSON
- laravel - laravel _ 方法 App\Http\Controllers\Admin\Message\categoryController::get_data_delete_message 不存在
- android - 从相机拍摄后图像自动旋转到 90 度
- sql - 如何从 Stack Exchange 数据资源管理器中查询上周创建的所有新标签?
- node.js - 强制 react-scripts 使用特定版本的子依赖
- reactjs - 如何传递 react-router-dom 道具和普通道具
- javascript - 在javascript回调中返回vs console.log