django - 使用外键关系“另一端”中的外键字段获取查询集
问题描述
如果这个问题没有意义,请原谅我,试着自学 django。我一直在尝试搜索如何做到这一点,但我不确定我在搜索中是否使用了正确的词。
我有以下型号。
class Category(models.Model):
code = models.CharField(max_length=10, unique=True)
description = models.CharField(max_length=50)
class UserGroupHeader(models.Model):
code = models.CharField(max_length=10, unique=True)
description = models.CharField(max_length=50)
class UserGroupDetail(models.Model):
usergroupheader = models.ForeignKey(UserGroupHeader, on_delete=models.CASCADE)
category = models.ForeignKey(Category, on_delete=models.PROTECT)
如何使用 UserGroupHeader 从 Category 模型中获取查询集?到目前为止我得到的是这样的东西UserGroupHeader.objects.get(pk=9).usergroupdetail_set.all()
,现在从这个结果中我如何获得类别模型?
解决方案
我不确定我是否完全理解你想要做什么,但一般来说,在查询时,你可以使用双下划线来跟踪关系。以下是几个可能的查询:
my_group_header = UserGroupHeader.objects.get(...)
Category.objects.filter(usergroupdetail__usergroupheader=my_group_header) # Gets Category objects related to my_group_header through UserGroupDetail model
Category.objects.filter(usergroupdetail__usergroupheader__code='abc') # Gets Category objects related to UserGroupHeader object with code 'abc' through UserGroupDetail model
UserGroupHeader.objects.filter(usergroupdetail__category__code='abc') # Gets UserGroupHeader objects related to Category object with code 'abc' through UserGroupDetail model
推荐阅读
- javascript - 在反应中处理条纹支付
- reactjs - 用 httpOnly cookie 进行开玩笑测试
- python - 如何使用 pyarmor 将多个 python 文件编译成单个 .exe 文件?
- javascript - 如何在 JavaScript 中显示 li 标签或如何显示 p 标签
- amazon-web-services - 如何设置运行 MQTT-SN 客户端示例的 OpenThread 设备以连接到 AWS IoT Cloud
- java - 为 XML 生成 DTO
- snowflake-cloud-data-platform - 如何创建包含开始/结束日期的最大非重叠间隔?
- python - 有没有办法在 CLI 中轻松进行单词建议?
- r - 如何将标准化数值变量(库(食谱))转换回 R 中的原始值
- python-tesseract - 如何使用 pytesseract 从图像中识别六个字符