Django原始sql查询

问题描述 投票:0回答:2

我有这个模特:

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 ...')
mysql django django-models django-queryset
2个回答
2
投票

将Django查询转换为SQL的最简单方法是简单地查看Django生成的SQL:How can I see the raw SQL queries Django is running?


0
投票

您可以通过以下方式获得相应的查询:

queryset = Document.objects.annotate(num_users=Count(users))  
sql_query = queryset.query
print(sql_query)
© www.soinside.com 2019 - 2024. All rights reserved.