温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用django怎么在原有表格中添加或删除字段

发布时间:2021-05-12 17:40:21 来源:亿速云 阅读:433 作者:Leah 栏目:开发技术

今天就跟大家聊聊有关使用django怎么在原有表格中添加或删除字段,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一、如果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怎么在原有表格中添加或删除字段有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI