外键:
用连个模型来说明:
class User(models.Model):
uesrname = models.CharField(max_length=20)
password = models.CharField(max_length=100)
class Article(models.Model):
title = models.CharField(max_length=20)
content = models.TextField()
外键关联:
aythor = models.ForeignKey("User",on_delete=models.CASCADE)
关联哪张表,联级删除了,本数据也被删除
models.CASCADE 联级表删除了,本数据也被删除
models.PROTECT 受保护,只要这条数据使用了外键,那么包括外键的数据都不能被删除
models.SET_DEFAULT 设置默认值 如果外键那天数据被删除了,就给本数据设置的默认值去,要使用这个选项,要指定这个字段有一个默认值
SET_NULL 设置为空,如果外键那天数据被删除了,就给本数据设置为空,要使用这个选项,要指定这个字段可以为空
on_delete=models.DO_NOTHING 表示不采取任何行为,一切看数据库级别的约束。数据库级别的约束,可以在设计表,外键里查看到!
SET():与models.SET_DEFAULT类似,但它除了指定一个值外,还可以指定一个函数,就是会去调用这个函数,并返回结果
1
登陆后方可评论