python - 如何在 django 查询集中的多个字段上执行连接?
问题描述
这是我的模型:
class Picture(models.Model):
picture_id = models.IntegerField(db_column='PictureID', primary_key=True)
gold_item =models.ForeignKey(GoldItem,db_column="GoldItemID",related_name="pictures",on_delete=models.CASCADE)
gold_item_branch = models.ForeignKey(GoldItemBranch, db_column="GoldItemBranchID", related_name="pictures", on_delete=models.CASCADE)
code = models.CharField(db_column='Code', max_length=5, blank=True, null=True)
class GoldItemBranch(models.Model):
gold_item_branch_id = models.IntegerField(db_column='GoldItemBranchID', primary_key=True)
gold_item_id = models.IntegerField(db_column='GoldItemID')
gold_item_branch_name = models.CharField(db_column='GoldItemBranchName', max_length=30, blank=True, null=True)
我需要对上述模型中的多个列执行连接操作。列是 gold_item_id 和 gold_item_branch_id
我写了 SQL 查询:
select * from Pictures
join GoldItemBranches on Pictures.GoldItemID = GoldItemBranches.GoldItemID and Pictures.GoldItemBranchID = GoldItemBranches.GoldItemBranchID
如何在 Django 查询集中执行相同的查询?
解决方案
您应该查看 django 的select_related查找。
例子:
Picture.objects.select_related('gold_item__gold_item_id').filter(gold_item_branch=gold_item_id)
推荐阅读
- javascript - VueJS 中的动态菜单或列表
- java - 如何缩小操作栏中上/后箭头和标题之间的间距?
- php - 抓取表格中的行和单元格
- node-red - 在具有全局上下文的节点红色中使用外部 npm 模块时出现“未定义”异常
- python - 使用 Python 将数据从 datasteam 加载到 BigQuery
- artifactory - Artifactory BootStrapping
- java - 从子表休眠选择查询
- python - Python - 合并 B 列,其中 A 列重复
- php - 如何在 mpdf 库中使用印地语字体?
- sql - 在 Oracle SQL 上比较日期和触发器