Kub*_*bas 6 django django-models
我知道这object_id比外键过滤更有效,object.id
但是这条规则适用于外键过滤吗?
是
Model.objects.filter(author_id=author_obj.id)
Run Code Online (Sandbox Code Playgroud)
或者
Model.objects.filter(author_id=author_id)
Run Code Online (Sandbox Code Playgroud)
比更有效率
Model.objects.filter(author=author_obj)
Run Code Online (Sandbox Code Playgroud)
如文档的相关对象查询部分所述,author_obj.id和之间没有区别author_obj:
例如,如果您有一个 id=5 的 Blog 对象 b,则以下三个查询将是相同的:
Entry.objects.filter(blog=b) # Query using object instance
Entry.objects.filter(blog=b.id) # Query using id from instance
Entry.objects.filter(blog=5) # Query using id directly
Run Code Online (Sandbox Code Playgroud)
我个人entry.blog_id在我的项目中使用它作为规则,因为它不会生成额外的查询。