如何使用子查询获取 SQL 查询?

How to get SQL query for query with Subquery?

我有一个问题

q = Product.objects \
    .annotate(t=Subquery(Purchase.objects.filter(user=user)))

当我这样做时 print(q.query) 我得到以下异常:

{FieldError} Cannot resolve expression type, unknown output_field

怎么办以及为什么他们无法解析表达式类型?

您需要使用.values,从用户

select您要注释的字段
q = Product.objects.annotate(t=Subquery(Purchase.objects.filter(user=user).values('pk')))