【发布时间】:2020-10-09 18:30:11
【问题描述】:
我想查询我的 Django 数据库一次并返回一个查询集(分配了名称“代码”),我可以对其进行迭代以获得每个实例的“内部代码”属性,而无需进一步调用数据库。这是我的代码,但我不确定是否每次在 Queryset 上使用“get”时都在查询数据库,以及如何避免这种情况:
codes = models.RecordType.objects.all()
permanent = sorted([
(
codes.get(
industry_code=category.value
).internal_code,
self.labels.get(category, category.name)
)
for category in enums.Category
])
【问题讨论】:
-
我不是 Djangonaut,但对我来说是你进行单个查询并使用返回的查询集
-
使用
RecordType.objects.values_list('internal_code', flat=True)只得到internal_code列返回列表样式,然后你可以zip与类别获取元组列表,这在imo中更具可读性。
标签: python sql django database loops