Django model 表与表之间的关联(外键、一对多对多、联合主键)
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) # 一对多关系
class Reader(models.Model):
name = models.CharField(max_length=100)
book = models.OneToOneField(Book, on_delete=models.CASCADE) # 一对一关系
class Student(models.Model):
name = models.CharField(max_length=100)
class Course(models.Model):
title = models.CharField(max_length=100)
students = models.ManyToManyField(Student) # 多对多关系
class CombinedKeyModel(models.Model):
key_part_1 = models.IntegerField()
key_part_2 = models.CharField(max_length=100)
class Meta:
unique_together = [
('key_part_1', 'key_part_2'),
]
这个例子展示了如何在Django模型中定义一对多、一对一和多对多的关系,以及如何使用联合主键。在这个例子中,我们定义了四个模型:Author、Book、Reader和Course,以及一个使用联合主键的模型CombinedKeyModel。每个模型都有相应的字段和关系指定,并且都继承自Django的models.Model基类。
评论已关闭