zoukankan      html  css  js  c++  java
  • foreignkey相关的参数

    ForeignKey(ForeignObject)

    blog = models.ForeignKey(
    	to="Blog",
    	to_field="nid",
    	on_delete=models.DO_NOTHING)  
    	# 外键关联博客,一个博客站点可以有多个分类

    字段

    to,  # 要进行关联的表名
    to_field = None,  # 要关联的表中的字段名称
    
    on_delete = None,  # 当删除关联表中的数据时,当前表与其关联的行的行为
      - models.CASCADE,删除关联数据,与之关联也删除
      - models.DO_NOTHING,删除关联数据,引发错误IntegrityError
      - models.PROTECT,删除关联数据,引发错误ProtectedError
      - models.SET_NULL,删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空)
      - models.SET_DEFAULT,删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值)
      - models.SET,删除关联数据,
        a.与之关联的值设置为指定值,设置:models.SET()
        b.与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)
    
    例:
    def func():
        return 10
    
    class MyModel(models.Model):
        user = models.ForeignKey(
            to="User",
            to_field="id"
            on_delete = models.SET(func),)
    
    # 反向操作时,使用的字段名,用于代替【表名_set】
    related_name = None,  
    如: obj.表名_set.all() == obj.related_name.all()
    
    # 反向操作时,使用的连接前缀,用于替换【表名】 如: 
    related_query_name = None,  
    models.UserGroup.objects.filter(表名__字段名=1).values('表名__字段名')
    
    # 在Admin或ModelForm中显示关联数据时,提供的条件:    
    limit_choices_to = None,  
    # 如:
    - limit_choices_to = {'nid__gt': 5}
    - limit_choices_to = lambda: {'nid__gt': 5}
    
    from django.db.models import Q
    - limit_choices_to = Q(nid__gt=10)
    - limit_choices_to = Q(nid=8) | Q(nid__gt=10)
    - limit_choices_to = lambda: Q(Q(nid=8) | Q(nid__gt=10)) & Q(caption='root')
    
    db_constraint = True  # 是否在数据库中创建外键约束
    parent_link = False  # 在Admin中是否显示关联数据
    每天逼着自己写点东西,终有一天会为自己的变化感动的。这是一个潜移默化的过程,每天坚持编编故事,自己不知不觉就会拥有故事人物的特质的。 Explicit is better than implicit.(清楚优于含糊)
  • 相关阅读:
    python 数组转成图片(含避坑点,无输出不出来错误、直接运行即可)
    Handlp 分词、加词典、关键字提取、摘要、短语提取、依法依据分析(含代码、直接运行即可)
    Navigate黑客松物联网行为分析分析和逻辑
    百度地图API调用转换WGS坐标以及上传点到鹰视
    直角坐标系用三角函数判断旋转方向和旋转角度
    知道两个点的经纬度计算两个点的距离
    MQTT的简单Demo
    JavaSE-17 泛型
    JavaSE-16 集合框架
    JavaSE-15 Log4j参数详解
  • 原文地址:https://www.cnblogs.com/kylin5201314/p/15094259.html
Copyright © 2011-2022 走看看