Django实现数据库的表间三种关系
在 Django 中,表间的关系有三种常见类型:一对多(One-to-Many)、一对一(One-to-One)和多对多(Many-to-Many)。这三种关系分别通过不同的字段来实现。
1. 一对多(One-to-Many)关系
一对多关系表示一个模型的实例可以与多个其他模型的实例相关联,而另一个模型的实例只能与一个模型的实例相关联。Django 通过 ForeignKey
字段来实现一对多关系。
示例:
假设我们有两个模型:Author
和 Book
,一个作者可以有多本书,但每本书只有一个作者。
from django.db import models
# Author模型
class Author(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
# Book模型,使用外键建立一对多关系
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='books') # 外键指向 Author
def __str__(self