2016-09-07 44 views
0

我有两个型号UserPost这样的:如何检查获取模型实例的外键集的原始sql语句?

class User(models.Model): 
    username = models.CharField('username', max_length=10) 

class Post(models.Model): 
    user = models.ForeignKey(User) 

u1 = User.objects.get(pk=1) 

我如何才能找到的u1.post_set原始的SQL语句,似乎没有API此。

+0

酷似@Sayse说查询,但打印出来或包裹在'str()' – valignatev

+0

@Sayse谢谢。就是这样 – tcpiper

回答

1

您需要将RelatedManagerget the queryset,然后获取查询集的

u1.post_set.get_queryset().query 

这应该变成像

'SELECT (some fields) FROM "the _set model" WHERE "_set_model"."model.id" = 1' 
+0

你怎么知道'get_queryset'?我检查了'u1.post_set .__ dict__'并没有任何用处。 – tcpiper

+0

我查看源代码,找到它的最简单方法是搜索“github django”,在这种情况下,然后我使用github的搜索来查找“RelatedManager”类,有时候“github django relatedmanager”会带你到那里 – Sayse

相关问题