字段参数:

null:用于表示某个字段可以为空

unique:如果设置为 unique=True,则该字段在此表中必须是唯一的

db_index:如果 db_index=True,则代表着为此字段设置数据库索引

default:为该字段设置默认值

关系字段参数:

to:设置要关联的表

to_field:设置要关联的表的字段

related_name:反向操作时,使用的字段名,用于代替原反向查询时的 '表名_set'

related_query_name:反向查询操作时,使用的连接前缀,用于替换表名

db_constraint:是否在数据库中创建外键约束,默认为 True

on_delete:当删除关联表中的数据时,当前表与其关联的行的行为

on_delete 的值:

models.CASCADE:删除关联数据,与之关联也删除。默认的,可以不写,在 Django 2 后需要写上。

models.DO_NOTHING:删除关联数据,引发错误 IntegrityError

models.PROTECT:删除关联数据,引发错误 ProtectedError

models.SET_NULL:删除关联数据,与之关联的值设置为 null(前提 ForeignKey 字段需要设置为可空)

models.SET_DEFAULT:删除关联数据,与之关联的值设置为默认值(前提 ForeignKey 字段需要设置默认值)

models.SET:删除关联数据,与之关联的值设置为指定值,设置:models.SET(值);与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)

from django.db import models

class Person(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=32)
age = models.IntegerField()
birthday = models.DateField(auto_now_add=True) class Man(models.Model):
id = models.AutoField(primary_key=True)
# to="Person" 表示跟 Person 关联
# to_field="name" 表示跟 Person 表的 name 字段关联
# on_delete=models.CASCADE 关联数据被删除时,关联也会被删除
# db_constraint=False 表示两个关联数据在数据库操作上没有关系
name = models.ForeignKey(to="Person", on_delete=models.CASCADE, db_constraint=False)

Python - Django - ORM 常用的字段属性的更多相关文章

  1. Django ORM常用的字段和参数

    ORM 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类 ...

  2. Python - Django - ORM 常用字段

    AutoField: int 自增列,必须填入参数 primary_key=True 如果没有写 AutoField,则会自动创建一个列名为 id 的列 from django.db import m ...

  3. python - django (ORM常用字段)

    # """ python manage.py makemigrations # 更新操作 python manage.py migrate # 转换sql语句到数据库 1 ...

  4. Django --ORM常用的字段和参数 多对多创建形式

    1 ORM字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类型 ...

  5. Django(ORM常用字段)

    day68 参考:http://www.cnblogs.com/liwenzhou/p/8688919.html 1. Django ORM常用字段:             1. AutoField ...

  6. Django orm常用字段和字段参数

    1.Object Relational Mapping(ORM) 1.1ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象 ...

  7. Django ORM 常用字段和参数

    Django ORM 常用字段和参数 一:常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. I ...

  8. Django框架之第六篇(模型层)--单表查询和必知必会13条、单表查询之双下划线、Django ORM常用字段和参数、关系字段

    单表查询 补充一个知识点:在models.py建表是 create_time = models.DateField() 关键字参数: 1.auto_now:每次操作数据,都会自动刷新当前操作的时间 2 ...

  9. Django ORM介绍 和字段及字段参数

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

随机推荐

  1. Vue创建组件的三种方式

    1.使用 Vue.extend 来创建全局的Vue组件 <div id="app"> <!-- 如果要使用组件,直接,把组件的名称,以 HTML 标签的形式,引入 ...

  2. learning java AWT 右键菜单

    import java.awt.*; import java.awt.event.*; public class SimpleMenu { private Frame f = new Frame(&q ...

  3. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mysql/mysql.sock' (2)

    这种情况一般是mysql被杀掉了. 要重新启动. ps -A | grep -i mysql kill 列出来的进程 service mysql start 我的问题就解决了    

  4. leetcode解题报告(28):Remove Linked List Elements

    描述 Remove all elements from a linked list of integers that have value val. Example Given: 1 --> 2 ...

  5. 37、数据源之通用的load和save操作

    一.通用的load和save操作 1.概述 对于Spark SQL的DataFrame来说,无论是从什么数据源创建出来的DataFrame,都有一些共同的load和save操作. load操作主要用于 ...

  6. java学习笔记(3)数据类型、源码、反码、补码、精度损失、基本数据类型互相转换

    关于java中的数据类型: 1.数据类型的作用是什么? 程序当中有很多数据,每一个数据都是有相关类型的,不同数据类型的数据占用的空间大小不同. 数据类型的作用是指导java虚拟机(JVM)在运行程序的 ...

  7. getchar与putchar缓冲区以及字符串数组、指针

    getchar与putchar缓冲区 有下面的语句段: while ((s = getchar()) != '\n'){ putchar(s); putchar("\n"); } ...

  8. UOJ#221. 【NOI2016】循环之美 数论,杜教筛

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ221.html 题解 首先把题目转化为求 \[\sum_{x=1}^n \sum_{y=1}^m [\gcd(x,y) = ...

  9. 【洛谷】P4167 [Violet]樱花

    题面 又懒得弄题面,开个传送门吧 分析 人生第一次切数学题,我们先把方程写出来 $$\frac {1}{x}+\frac {1}{y}=\frac {1}{n!}$$ 现在我们知道的条件是x,y都是正 ...

  10. springcloud config自动刷新中文乱码问题

    摘录一段网上盛传的,如下: 在使用 spring cloud config 时,如果在 properties 文件里面有中文的话,会出现乱码. 乱码的原因是:spring 默认使用org.spring ...