django 在原有表格添加或删除字段的实例


Posted in Python onMay 27, 2018

一、如果models.py文件为时:

timestamp = models.DateTimeField('保存日期')

会提示:

(env8) D:\Desktop\env8\Scripts\mysite>python manage.py makemigrations
You are trying to add a non-nullable field 'timestamp' to article without a defa
ult; we can't do that (the database needs something to populate existing rows).
Please select a fix:
 1) Provide a one-off default now (will be set on all existing rows)
 2) Quit, and let me add a default in models.py

输入:1 (这里要求你设置新建字段的默认值,它会在新建这个字段的同时把默认值也添加上去,)Select an option: 1

Please enter the default value now, as valid Python
The datetime and django.utils.timezone modules are available, so you can do e.g.
 timezone.now()
>>>

这里面不好修改

可以

(env8) D:\Desktop\env8\Scripts\mysite>python manage.py shell
(env8) D:\Desktop\env8\Scripts\mysite>from django.db import connection
(env8) D:\Desktop\env8\Scripts\mysite>cursor=connection.cursor()
(env8) D:\Desktop\env8\Scripts\mysite>cursor.execute('ALTER TABLEArticle add column timestamp varchar(100) default 0')

二、如果models.py文件为时:

timestamp = models.DateTimeField('保存日期',default=timezone.now,blank=False, null=False)
timestamp = models.DateTimeField('保存日期',default=timezone.now,blank=True, null=True)

blank

设置为True时,字段可以为空。设置为False时,字段是必须填写的。字符型字段CharField和TextField是用空字符串来存储空值的。如果为True,字段允许为空,默认不允许.

null

设置为True时,django用Null来存储空值。日期型、时间型和数字型字段不接受空字符串。所以设置IntegerField,DateTimeField型字段可以为空时,需要将blank,null均设为True。如果为True,空值将会被存储为NULL,默认为False。如果想设置BooleanField为空时可以选用NullBooleanField型字段。

(env8) D:\Desktop\env8\Scripts\mysite>python manage.py makemigrations就不会有下面的提示
(env8) D:\Desktop\env8\Scripts\mysite>python manage.py migrate 就行了中间不会设置数据类型(很容易出错)(若要设置默认值)

三、数据库设计是整个网站开发的核心

补充:timestamp = models.DateTimeField('保存日期')

(env8) D:\Desktop\env8\Scripts\mysite>python manage.py makemigrations
You are trying to add a non-nullable field 'timestamp' to article without a defa
ult; we can't do that (the database needs something to populate existing rows).
Please select a fix:
 1) Provide a one-off default now (will be set on all existing rows)
 2) Quit, and let me add a default in models.py
Select an option: 1
Please enter the default value now, as valid Python
The datetime and django.utils.timezone modules are available, so you can do e.g.
 timezone.now()
>>> '2017-12-16 05:04:31.000'(添加字段的数据类型格式)
Migrations for 'blog':
 0002_article_timestamp.py:
  - Add field timestamp to article
(env8) D:\Desktop\env8\Scripts\mysite>python manage.py migrate
Operations to perform:
 Synchronize unmigrated apps: staticfiles, ckeditor_uploader, messages, ckedito
r, bootstrap3
 Apply all migrations: admin, blog, contenttypes, auth, sessions
Synchronizing apps without migrations:
 Creating tables...
  Running deferred SQL...
 Installing custom SQL...
Running migrations:
 Rendering model states... DONE
 Applying blog.0002_article_timestamp...D:Desktop\env8\lib\site-packa
ges\django\db\models\fields\__init__.py:1474: RuntimeWarning: DateTimeField Arti
cle.timestamp received a naive datetime (2017-12-16 05:04:31) while time zone su
pport is active.
 RuntimeWarning)
 OK
(env8) D:\Desktop\env8\Scripts\mysite>

以上这篇django 在原有表格添加或删除字段的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python深入学习之闭包
Aug 31 Python
Python常用内置函数总结
Feb 08 Python
利用Python中的输入和输出功能进行读取和写入的教程
Apr 14 Python
python集合用法实例分析
May 30 Python
使用Python脚本和ADB命令实现卸载App
Feb 10 Python
Python单例模式的两种实现方法
Aug 14 Python
linux环境下的python安装过程图解(含setuptools)
Nov 22 Python
用TensorFlow实现lasso回归和岭回归算法的示例
May 02 Python
Django 通过JS实现ajax过程详解
Jul 30 Python
tensorflow安装成功import tensorflow 出现问题
Apr 16 Python
python 下划线的多种应用场景总结
May 12 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
Jun 07 Python
用python写扫雷游戏实例代码分享
May 27 #Python
和孩子一起学习python之变量命名规则
May 27 #Python
儿童学习python的一些小技巧
May 27 #Python
django初始化数据库的实例
May 27 #Python
django 删除数据库表后重新同步的方法
May 27 #Python
Django 根据数据模型models创建数据表的实例
May 27 #Python
Django使用Mysql数据库已经存在的数据表方法
May 27 #Python
You might like
七款最流行的PHP本地服务器分享
2013/02/19 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
Javascript Global对象
2009/08/13 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
解释&&和||在javascript中的另类用法
2014/07/28 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
2017/04/12 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
vue router+vuex实现首页登录验证判断逻辑
2018/05/17 Javascript
Vue简单实现原理详解
2020/05/07 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
[01:08]DOTA2“血战之命”预告片
2017/08/12 DOTA
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
python中的五种异常处理机制介绍
2014/09/02 Python
浅谈Python中copy()方法的使用
2015/05/21 Python
详解python的几种标准输出重定向方式
2016/08/15 Python
详解Python中如何写控制台进度条的整理
2018/03/07 Python
Python之列表的插入&替换修改方法
2018/06/28 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
如何一键升级Python所有包
2020/11/05 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
PyQt5中QSpinBox计数器的实现
2021/01/18 Python
Python对excel的基本操作方法
2021/02/18 Python
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
经典C++面试题一
2016/11/06 面试题
森林防火工作方案
2014/02/14 职场文书
Python面向对象之成员相关知识总结
2021/06/24 Python
Nginx内网单机反向代理的实现
2021/11/07 Servers