当对具有大文本字段的相关模型进行查询时,django将所有数据加载到SQL查询中。
如何从主模型和查询集中自动延迟文本字段?
如何从查询字段(如description、description_)中排除??,text,text_??
选择DISTINCT store_item
。id
、store_item
。store_id
,..... store_item
、product_id
、store_item
。price_in
、store_item
。price_out
、store_item
。count
、product
。id
、product
。name
、product
。name_uk
、product
。name_ru
、product
。name_en
、product
。manufacturer_id
,... product
. description
、product
。description_uk
、product
。description_ru
、product
。description_en
、product
。text
、product
。text_uk
、product
。text_ru
、product
。text_en
,... product_manufacturer
. id
、product_manufacturer
。action_id
、product_manufacturer
。name
、product_manufacturer
。slug
、product_manufacturer
。code
,... product_manufacturer
. description
、product_manufacturer
。description_uk
、product_manufacturer
。description_ru
、product_manufacturer
。description_en
,... product_manufacturer
. text
、product_manufacturer
。text_uk
、product_manufacturer
。text_ru
、product_manufacturer
。text_en
,...从store_item
内接缝product
到store_item
。product_id
= product
。id
左外接合product_manufacturer
在product
上。manufacturer_id
= product_manufacturer
。id
ORDER BY product_manufacturer
. name
ASC,product
。name
ASC
选择DISTINCT store_item
。id
、store_item
。store_id
,..... store_item
。product_id
、store_item
。price_in
、store_item
。price_out
、store_item
。count
、product
。id
、product
。name
、product
。name_uk
、product
。name_ru
、product
。name_en
、product
。manufacturer_id
,..... product_manufacturer
. id
、product_manufacturer
。action_id
、product_manufacturer
。name
、product_manufacturer
。slug
、product_manufacturer
。code
,从store_item
内接缝product
到store_item
。product_id
= product
。id
左外接合product_manufacturer
在product
上。manufacturer_id
= product_manufacturer
。id
ORDER BY product_manufacturer
. name
ASC,product
。name
ASC
1条答案
按热度按时间lf5gs5x21#
下面是一个可以用来延迟查询大字段的函数。它将收集所有文本字段,包括本地化的变体,可能有人发现它有用。排除参数也存在。你可以像这样使用它:
items = queryset.defer(*get_related_fields(queryset))