1对1关系
#1对1的关系 外键可以在任意的表中 一个身份证对应一个人 一个人也只有一个身份证
from django.db import models
class Student(models.Model):
sno=models.AutoField(primary_key=True)
sname=models.CharField(max_length=30,unique=True)
class Meta:
db_table ="t_stu1"
def __str__(self):
return self.sname
class Scard(models.Model):
# 1对1关系 设置主键 就不会自动生成id
stuno=models.OneToOneField(Student,primary_key=True,on_delete=models.CASCADE)
major=models.CharField(max_length=30)
# 通过一个内嵌类 "class Meta" 给你的 model 定义元数据,
# db_table是用于指定自定义数据库表名的。Django有一套默认的按照一定规则生成数据模型对应的数据库表名
# 若不提供该参数, Django 会使用 app_label + '_' + module_name 作为表的名字.
class Meta:
db_table="t_scard"
def __str__(self):
return self.major
ondelete
从上面外键(ForeignKey)和一对一(OneToOneField)来看,都包含有on_delete这个参数