Django modele 常用字段 on_delete属性

 1 # class UserGrop(models.Model):
 2 #     uid = models.AutoField(primary_key=True)
 3 #
 4 #     name = models.CharField(max_length=32,null=True,blank=True)
 5 #     email = models.EmailField(max_length=32)
 6 #     text = models.TextField()
 7 #
 8 #     # 添加时更新时间
 9 #     ctime = models.DateTimeField(auto_now_add=True)
10 #     #修改时更新时间
11 #     uptime = models.DateTimeField(auto_now=True)
12 #
13 #
14 #     ip = models.IPAddressField()
15 #     ip = models.GenericIPAddressField()
16 #
17 #
18 #     active = models.BooleanField(default=True)
19 #
20 #     data = models.DateTimeField()
21 #     data = models.DateField()
22 #     data = models.TimeField()
23 #
24 #
25 #     age = models.PositiveIntegerField()
26 #     balance = models.SmallIntegerField()
27 
28 #
29 #
30 #     user_type_choices = (
31 #         (1,'超级用户'),
32 #         (2,'普通用户'),
33 #         (3,'普普通通用户')
34 #     )
35 #
36 #     user_type_id = models.IntegerField(choices=user_type_choices,default=1)

 





ut = models.ForeignKey(to=UserTypes,to_field='id',related_query_name='a',on_delete=models.CASCADE)

"""
 一对多 Foreignkey可选参数
 to   要关联的表中的字段名称
 to_field = None  要关联的表中的字段名称
 on_delete = None {
        model.CASCADE     删除关联数据,与之关联也删除
        model.DO_NOTHING  删除关联数据 引发错误IntegrityError
        model.PROTECT     删除关联数据 引发错误ProtectedError
        model.SET_NULL    删除关联数据 与之关联的值为null(前提是FK字段需要设置为可以空)
        model.SET_DEFAULT 删除关联数据 与之关联的值设置为默认值(前提是FK字段需要设置为可为空) 
        model.SET         删除关联数据
                    }
related_name = None       反向操作时,使用的字段名 用于代替表名
delated_query_name = None 反向操作时,使用的连接前缀,用于代替表名
limit_choices_to=None     在Admin或ModelForm中显示关联数据时,提供条件:
        {  limit_choices_to={'nid__gt':5} 
           limit_choices_to=lamdba : { 'nid__gt':5 }
        }
        
db_constraint=True         是否在数据库中创建外键约束
parent_link= False         在Admin中是否显示关联数据

"""
on_delete

 

posted @ 2020-07-09 09:37  Handsome、Snake  阅读(271)  评论(0编辑  收藏  举报