python – Django .values_list()替代方法,为ForeignKey字段的
发布时间:2020-12-16 22:46:45 所属栏目:Python 来源:网络整理
导读:我正在寻找一种基于模型ForeignKey字段将一种类型的QuerySet转换为另一种类型的简洁方法,所以基本上类似于.values_list(my_fk,flat = True)但返回正确的QuerySet而不是values_list()变种. 例如: class Parent(models.Model): child = models.ForeignKey(Chi
我正在寻找一种基于模型ForeignKey字段将一种类型的QuerySet转换为另一种类型的简洁方法,所以基本上类似于.values_list(‘my_fk’,flat = True)但返回正确的QuerySet而不是values_list()变种. 例如:
这里,children_qs现在应该是先前查询中使用的所有Child实例的查询集,而不是返回Parent实例的查询集. 您可以使用自定义查询集和__in查找来执行此操作,但感觉有点臭:
这将从Parent的查询集中的记录中获取所有child_id FK,并直接重新查询Child.当我检查SQL它做了一个子查询,我不确定这是最优还是有一些奇怪的副作用.它看起来像原始父查询的排序已经消失,因此重复. 有人有更好的东西吗? 注意:我知道我可以通过Child直接查询并使用反向查找过滤Parent的字段,但这不支持您可以在主模型上执行的所有操作. 最佳答案
试试这个,它将返回Child类的query_set
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |