2012-02-26 115 views
0

我有这种模式:Django的原始SQL查询

class Document(models.Model): 
    data = models.TextField() 
    users = models.ManyToManyField(User) 

你会如何转换以下查询上述模型,以原始的SQL?

Document.objects.annotate(num_users=Count(users)) 

我需要,因为使用MySQL,使得注释非常缓慢时,有一个错误在Django这个切换到原始的SQL。

但我不知道如何处理许多在原始的SQL许多领域..

Document.objects.raw('SELECT ...') 

回答

2

到SQL是简单地看那个Django的生成SQL翻译你的Django查询最简单的方法:How can I see the raw SQL queries Django is running?

+0

小心!也许他所说的错误是django如何将查询翻译成mysql语法(尽管我很难相信这个查询在不同的DBMS如postgre或mysql中被区别对待)。如果@ 9位认为原始查询继续缓慢运行,他应该在这里添加django抛出的原始sql ... – marianobianchi 2012-06-15 03:04:24