django orm外键查询
时间: 2023-09-12 08:13:17 浏览: 195
在 Django ORM 中,外键查询是通过在模型之间定义外键关系来实现的。下面是一个简单的例子:
假设我们有两个模型:`Author` 和 `Book`,它们之间有一对多的外键关系,即一个作者可以写多本书。
```python
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
```
现在我们想要查询某个作者写的所有书籍,可以使用以下代码:
```python
author = Author.objects.get(name='John')
books = Book.objects.filter(author=author)
```
这将返回一个 `QuerySet` 对象,其中包含所有属于该作者的书籍。
如果你想要在查询结果中包含作者信息,你可以使用 `select_related()` 方法来执行联接查询,从而避免多次查询数据库。例如:
```python
books = Book.objects.filter(author=author).select_related('author')
```
这将返回一个 `QuerySet` 对象,其中包含所有属于该作者的书籍,并且每本书都有对应的作者信息。
阅读全文