如何用字段替代Django 1.5的深度
在Django 1.5版本中,select_related()这个函数里的depth参数已经不再推荐使用了。你应该用(*fields)来列出具体的相关字段,像上面文档里说的那样。你也可以指定要跟踪的关系的深度限制:
b = Book.objects.select_related(depth=1).get(id=4)
p = b.author # Doesn't hit the database.
c = p.hometown
怎么用(*fields)来替代Django 1.5中的depth呢?
1 个回答
0
在这个特定的情况下
b = Book.objects.select_related("author", "hometown").get(id=4)
我想很多人都是通过使用深度参数来获取未使用的对象。
如果你经常使用某个 select_related
并且涉及很多字段,你可能想要创建一个自定义的查询集,这样可以通过一个自定义的方法(类似于 qs.usually_related()
)自动添加它。
要添加这种功能,你可以参考这个很棒的答案: