我有一个这个模型:
class Document(models.Model):
data = models.TextField()
users = models.ManyToManyField(User)
如何将上述模型的以下查询转换为原始sql?
Document.objects.annotate(num_users=Count(users))
我需要将其切换为原始sql,因为使用MySql时django中存在一个使注释非常慢的错误。
但是我不确定如何处理原始sql中的多对多字段..
Document.objects.raw('SELECT ...')
答案 0 :(得分:2)
将Django查询转换为SQL的最简单方法是简单地查看Django生成的SQL:How can I see the raw SQL queries Django is running?
答案 1 :(得分:0)
您可以通过以下方式获得相应的查询:
queryset = Document.objects.annotate(num_users=Count(users))
sql_query = queryset.query
print(sql_query)