djangoORM 修改表结构/字段/外键操作
Django支持修改表结构

把max_length=64 改为60
再执行一遍
python manage.py makemigrations
python manage.py migrate
如果是增加一列

再执行一遍
python manage.py makemigrations
会出现众多选项

如果选择1,会让你输入一个默认值 我们输入“alex”

再执行python manage.py migrate

就更新了数据库

-------------
如果新加的一列可为空值Null

再执行一遍
python manage.py makemigrations
python manage.py migrate

--------
如果想删除一列
注释掉

再执行一遍
python manage.py makemigrations
python manage.py migrate
即可删掉
============================================================
model的字段类型介绍:
字符串
数字
时间
二进制
自增(primary_key=True)
http://www.cnblogs.com/wupeiqi/articles/5246483.html
model的字段参数介绍:

示例:




auto_now --》
在更新时
第一种 ceo update方法不适合django 更新 时间的方法 第二种可以
choices -- -》
把存入的信息保存在内存中 而不存在数据库里 在数据库中满足一个链接 让页面直接链接数据库但显示内存 外键关系
作用:django admin中显示下拉框 避免连表查询
1.

2.

3.数据库变化

4.运行run 进入django admin

blank --》 在django admin 是否可以为空
1.不写blank 直接提交

2. username可以为空 提交

显示

verbose_name--> django admin 是否可以显示中文
1.

2.

editable--> django admin 是否可以被编辑
1.

2.username消失


help_text--》django admin 提示


vaildators --》django form ,自定义错误信息
综上:

Django ORM 外键操作
不存进内存 表与表之间的关系 (基本:一对多 foreignKey)
例如:人与组关系

表示关联UserGroup表的数据
to_field 表示关联的表中所关联的字段 必须唯一 如果不加上 默认也是主键
设置默认值 是哪一个部门的
在创建列时 自动变成user_group
user_group 是一个对象 封装了uid caption ctime uptime
当获取数据时:

执行一遍 创建数据库
python manage.py makemigrations
python manage.py migrate
现在数据库有两张表

此刻数据库有两张表
UserGroup 有四列
UserInfo 有七列 包括id自增
连接关系如下:

格式如下:


----------------------
回到登录系统 外键连接操作
19.18


------------------
Django admin ORM 的外键实现增加用户

1.

2.
运行 输入orm 点击
3.
查看数据库

4.添加部门下拉框


但在数据库 添加表部门时候 ,页面并不会更改
-------------------------------
修改:
即在第一次get请求时, 就更新框
1.

2.

3.


综上:

一对多 多表连接

djangoORM 修改表结构/字段/外键操作的更多相关文章
- Oracle修改表结构字段名和字段长度
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter ...
- mysql 修改表结构以支持事务操作
修改表的类型为 INNODB 的 SQL: alter table category_ ENGINE = innodb; 查看表的类型的 SQL show table status from ...
- 在sql设计中没法修改表结构
在做练习的时候经常表没设计好,后来有要去数据库修改表结构但是没词用界面修改的时候都会提示要保存 转自http://www.57xue.com/ItemView/Sql/2016061600160.ht ...
- SQL Server 修改表结构被阻止 解决办法
在我们的程序开发中,有时候会由于需求的变化而要修改数据库中的表结构.可能是增减列,也可能是修改数据类型,或者修改列名等等.但修改表结构是个危险操作,默认情况下,当你修改表结构时,会弹出如下提示框 上图 ...
- mysql之字段的修改,添加、删除,多表关系(外键),单表详细操作(增删改)
字段的修改.添加和删除 create table tf1( id int primary key auto_increment, x int, y int ); #修改 alter table tf1 ...
- MySQ-表关系-外键-修改表结构-复制表-03
目录 前言 不合理的表结构(案例) 带来的问题 如何解决问题? 如何确定表关系? 表关系 一对多 多对多 一对一 应用场景 判断表关系最简单的语法 三种关系常见案例 如何建立表关系? 外键 forei ...
- 解决修改表结构,添加外键时出现“约束冲突”的错误
由于表结构更改,使用新建表,现有部分表需要更改外键,将引用更改到新建表的相应字段.在更改过程中,部分表出现如下错误提示: ALTER TABLE 语句与 COLUMN FOREIGN KEY 约束 ' ...
- Django学习——Django测试环境搭建、单表查询关键字、神奇的双下划线查询(范围查询)、图书管理系统表设计、外键字段操作、跨表查询理论、基于对象的跨表查询、基于双下划线的跨表查询
Django测试环境搭建 ps: 1.pycharm连接数据库都需要提前下载对应的驱动 2.自带的sqlite3对日期格式数据不敏感 如果后续业务需要使用日期辅助筛选数据那么不推荐使用sqlite3 ...
- 增加删除字段修改字段名,修改表结构,非常用SQL语句技巧总结
1.为数据表添加一个新字段 Alter TABLE [dbo].[CustomerBackupConfig] Add [Stamp] [timestamp] NULL GO 2.为数据表添加两个新字段 ...
随机推荐
- gitbook 入门教程之解决windows热加载失败问题
破镜如何贴花黄 gitbook 在 Windows 系统无法热加载,总是报错! gitbook 是一款文档编写利器,可以方便地 markdown 输出成美观优雅的 html ,gitbook serv ...
- <Array> 277 243 244 245
277. Find the Celebrity knows(i, j): By comparing a pair(i, j), we are able to discard one of them 1 ...
- ASP.NET开发实战——(十三)ASP.NET MVC 与数据库之EF实体类与数据库结构
大家都知道在关系型数据库中每张表的每个字段都会有自己的属性,如:数据类型.长度.是否为空.主外键.索引以及表与表之间的关系.但对于C#编写的类来说,它的属性只有一个数据类型和类与类之间的关系,但是在M ...
- MySQL实战45讲学习笔记:第四十四讲
一.引子 这是我们专栏的最后一篇答疑文章,今天我们来说说一些好问题. 在我看来,能够帮我们扩展一个逻辑的边界的问题,就是好问题.因为通过解决这样的问题,能够加深我们对这个逻辑的理解,或者帮我们关联到另 ...
- 改善java程序的151个建议
<编写高质量代码-改善java程序的151个建议> --秦小波 第一章.开发中通用的方法和准则 1.不要在常量和变量中出现易混淆的字母 long a=0l; --> long a=0 ...
- SQL Server 2014:为什么数据库里的表提示“单元格是只读的”,不能修改?该如何处理?
出现以上这种情况,首先看一下这个字段的属性“标识规范”是不是选了“是”,自增属性下是不能修改的,属于只读.
- SourceTree 版本跳过bitbucket注册方法
1.安装sourcetree时 需要选择 bitbucket账号,这个令人头疼 当然肯定有办法来跳过这一步 2.关闭当前安装界面 进入 C:\Users\Administrator\AppData ...
- eclipse查看一个方法被谁调用的快捷键
我们知道,在idea中是可以通过[ctrl+鼠标左键单击]去跳到方法调用方去的,但是在eclipse中却是不行的. 三种快捷键方式 这里列出在eclipse中查看一个方法被谁调用的三种方式(快捷键). ...
- 微软开放了.NET 4.5.1的源代码【转】
.NET Reference Source发布了beta版,可以在线浏览.NET Framework 4.5.1的源代码,并且可以通过配置,在Visual Studio 2013中调试.NET Fra ...
- shell脚本中判断进程是否存在
#! /bin/bash PROC_NAME=docker ProcNumber=`ps -ef |grep -w $PROC_NAME|grep -v grep|wc -l` ];then echo ...