有沒有辦法告訴Django在實例化模型實例時不要遵循外鍵關係?有什麼東西可以放在模型本身上?有什麼要傳遞給查詢集?我想有一個查詢集只返回具有外鍵id的實例 - 我不希望這些實例停止查詢以找到它的親屬。與select_related
相反的東西?告訴django不要關注外鍵?
1
A
回答
3
的Django的默認行爲是要等到一個外鍵關係進行數據庫查詢來填充相關的模型實例之前訪問。
爲了側向自動查詢相關實例,而不是直接訪問ForeignKey字段屬性,可以訪問attribute_id
(例如,
class Person(models.Model):
name = models.CharField(max_length=200)
user = models.ForeignKey('auth.User')
# access the user id via user_id
person = Person.objects.all()[0]
print person.user_id
0
相關問題
- 1. 「告訴,不要問」,同時保持關注
- 2. django註冊create_user()意外的關鍵字
- 3. 爲告訴,不要問
- 4. 告訴Merb不要超時
- 5. django告訴朋友
- 6. 外鍵關係不Django管理
- 7. 如何告訴python不要將hash符號解釋爲註釋?
- 8. 如何在查詢中告訴django不要跳過%和_
- 9. Django告訴我模板不存在
- 10. 數據訪問:'告訴,不要問'的例外情況?
- 11. 告訴jaxb不要刪除下劃線
- 12. 告訴GORM不要堅持財產
- 13. 告訴JQuery Mobile不要添加類?
- 14. 告訴IKImageBrowserView不要安排預加載
- 15. 如何告訴webpack有關額外的依賴關係?
- 16. 開關,而當告訴
- 17. Django:不同的外鍵
- 18. Django相關對象和空外鍵
- 19. Django反向外鍵關係失敗
- 20. Django的外鍵草堆關係
- 21. Django:外鍵和模型的關係
- 22. django中的外鍵關係錯誤
- 23. Django的外鍵關係與創作
- 24. Django的ORM:與外鍵關係
- 25. 關於Django管理頁面cacade外鍵
- 26. Django的查詢外鍵關係
- 27. Django的外鍵
- 28. Django外鍵
- 29. Django的外鍵
- 30. 要麼水晶報告註冊表鍵權限不足vb.net
我一直無法找到這個記錄,但似乎'等到外部關鍵字被訪問'的行爲只有在外鍵關係與同一個應用程序中的模型一致的情況下才有效。如果外鍵鏈接到應用程序之外的模型,django會在模型實例化後立即選擇。我錯了嗎?這看起來很糟糕。編輯:用debugsqlshell查看一些測試用例。 – Bacon 2011-04-09 22:23:48
是的,您錯了,相關模型的相關應用程序並不重要,默認情況下,相關實例的信息在獲取相關屬性之前不會被檢索到。 – 2011-04-09 22:27:32
好吧 - 你是對的。我使用django-debug-toolbar來觀察執行的SQL。看起來ddt中存在一個導致上述行爲的錯誤(如果它不在當前模型的應用程序中,它會遵循外鍵關係)。我把ddt關了,現在一切都很好。 – Bacon 2011-04-09 22:58:01