django2.0 外键和表关系


发布时间:2019-02-15 13:08    作者: Uncle Hui   已过去:1 年,6 月   阅读总量:1192 已被赞:1


外键:

用连个模型来说明:

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




登陆后方可评论