django进行多表联查
时间: 2023-07-21 21:12:07 浏览: 92
在Django中进行多表联查可以通过使用ORM(对象关系映射)实现。假设我们有两个模型,一个是`Author`表示作者,另一个是`Book`表示书籍,现在想要通过作者的id查询该作者所写的所有书籍。
首先需要在`Book`模型中添加一个外键,指向`Author`模型:
```python
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)
```
然后可以使用Django提供的`related_name`来指定反向查询的名称,例如:
```python
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, related_name='books')
```
现在可以通过以下方式查询某个作者所写的所有书籍:
```python
author = Author.objects.get(id=1)
books = author.books.all()
```
其中`author.books.all()`表示查询该作者所写的所有书籍。
阅读全文