[英]How to prevent Django's prefetch_related from caching a queryset
对于参数model,我有以下查询集 function:
class ArgumentQuerySet(QuerySet):
def prefetch_related_objects(self):
from views.models import View
return self.prefetch_related(
Prefetch(
'argument_reactions',
queryset=View.objects.filter(type=ViewType.ARGUMENT_REACTION.name,
reaction_type=ReactionType.ENDORSE.name),
to_attr='endorsement_reactions'
),
Prefetch(
'argument_reactions',
queryset=View.objects.filter(type=ViewType.ARGUMENT_REACTION.name,
reaction_type=ReactionType.DISAGREE.name),
to_attr='disagreement_reactions'
),
)
如您所见,我正在尝试使用不同的查询集预取相同的关系,并且我还在使用Prefetch object 的to_attr参数。 问题是第二次预取不能正常工作, discomparation_reactions列表是空的。 但如果我删除第一个预取,它会起作用。 我相信第一个查询集,即View.objects正在以某种方式被缓存。 我怎样才能防止这种情况?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.