我正在使用.only()在同一查询上在select_related()和prefetch_related()之后获取表的必填字段
我似乎无法从prefetch_related中获得结果,可能是因为.only()限制了对其结果的访问?
我也尝试在.only()中添加prefetch_related字段,但无济于事。
Feedback.objects.all().select_related(
'feedback_option'
).only(
'feedback_option',
# tried with and without either one or both of the following
'feedback__remarks',
'feedback__remarks__text'
).prefetch_related(
Prefetch(
'feedback__remarks',
queryset=FeedbackRemark.objects.all().only('text'),
),
)
正因为如此,我遇到了以下异常情况。
AttributeError:'ManyToOneRel'对象没有属性'attname'
我正在使用django 1.10.5
答案 0 :(得分:0)
遇到同样的问题,通过将 .only() 替换为 .defer() 来解决它,列出所有未使用的字段。 这缩短了使用的内存,无需额外的数据库查询。