Sql Django ORM-理解外键查询
我正在优化我的查询。假设我有这些模型:Sql Django ORM-理解外键查询,sql,django,orm,Sql,Django,Orm,我正在优化我的查询。假设我有这些模型: class Author(models.Model): name = models.CharField(max_length=20) class Book(models.Model): name = models.CharField(max_length=20) author = models.ForeignKey(Author) 这里的一个简单任务是获取给定作者的所有书籍,假设我有作者ID 在标准SQL中,我只需要查询books表 但在
class Author(models.Model):
name = models.CharField(max_length=20)
class Book(models.Model):
name = models.CharField(max_length=20)
author = models.ForeignKey(Author)
这里的一个简单任务是获取给定作者的所有书籍,假设我有作者ID
在标准SQL中,我只需要查询books表
但在django代码中,我会:
# given authorID
author = Author.objects.get(pk=authorID)
books = Book.objects.filter(author=author)
这需要两个问题。如何避免第一次查询?尝试以下方法:
Book.objects.filter(author_id=authorID)
这将返回作者外键为authorID的所有书籍。请尝试以下操作:
Book.objects.filter(author_id=authorID)
这将返回作者外键为authorID的所有书籍。请尝试以下操作:
Book.objects.filter(author_id=authorID)
这将返回作者外键为authorID的所有书籍。请尝试以下操作:
Book.objects.filter(author_id=authorID)
这将返回所有作者外键为authorID的书籍。如果我想在一个查询中创建一本新书,该怎么办?我的意思是:Book.objects.create(name=“name”,author=…),如果我想在一个查询中创建一本新书呢?我的意思是:Book.objects.create(name=“name”,author=…),如果我想在一个查询中创建一本新书呢?我的意思是:Book.objects.create(name=“name”,author=…),如果我想在一个查询中创建一本新书呢?我的意思是:Book.objects.create(name=“name”,author=…)