2016-09-07 16 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

相關問題