有没有办法告诉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. 如何告诉机器人框架不要记录关键字?
- 3. django注册create_user()意外的关键字
- 4. 告诉Django按需使用整数作为外键
- 5. Django模型和主要 - 外键关系
- 6. Django外键关系
- 7. 告诉java要聆听哪个键盘
- 8. 告诉Merb不要超时
- 9. 为告诉,不要问
- 10. django告诉朋友
- 11. 如何告诉调试器不要停止某些关键线程?
- 12. 外键关系不Django管理
- 13. 如何告诉python不要将hash符号解释为注释?
- 14. 如何告诉django不要在数据库中保存实例?
- 15. 如何在查询中告诉django不要跳过%和_
- 16. 如何告诉Django不要缓存HTTP POST数据?
- 17. Django告诉我模板不存在
- 18. Django外键不变
- 19. 如何告诉tox不要从依赖关系收集测试?
- 20. 告诉cabal-install不要内置在/ tmp
- 21. 告诉GORM不要坚持财产
- 22. 告诉IKImageBrowserView不要安排预加载
- 23. 告诉jaxb不要删除下划线
- 24. 告诉JQuery Mobile不要添加类?
- 25. 如何告诉webpack有关额外的依赖关系?
- 26. Django的注释计数外键的外键
- 27. 开关,而当告诉
- 28. Django:不同的外键
- 29. Spring Roo的 - 告诉dbmanaged实体从外键的方法名称
- 30. 如何告诉LinqToSQL在多键时使用外连接?
我一直无法找到这个记录,但似乎'等到外部关键字被访问'的行为只有在外键关系与同一个应用程序中的模型一致的情况下才有效。如果外键链接到应用程序之外的模型,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