今天就跟大家聊聊有關(guān)使用django怎么在原有表格中添加或刪除字段,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)公司成都網(wǎng)站建設(shè)按需網(wǎng)站策劃,是成都營(yíng)銷推廣公司,為成都護(hù)欄打樁機(jī)提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺(tái)程序開發(fā)等。成都網(wǎng)站建設(shè)熱線:13518219792一、如果models.py文件為時(shí):
timestamp = models.DateTimeField('保存日期')
會(huì)提示:
(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 (這里要求你設(shè)置新建字段的默認(rèn)值,它會(huì)在新建這個(gè)字段的同時(shí)把默認(rèn)值也添加上去,)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文件為時(shí):
timestamp = models.DateTimeField('保存日期',default=timezone.now,blank=False, null=False) timestamp = models.DateTimeField('保存日期',default=timezone.now,blank=True, null=True)
blank
設(shè)置為True時(shí),字段可以為空。設(shè)置為False時(shí),字段是必須填寫的。字符型字段CharField和TextField是用空字符串來存儲(chǔ)空值的。如果為True,字段允許為空,默認(rèn)不允許.
null
設(shè)置為True時(shí),django用Null來存儲(chǔ)空值。日期型、時(shí)間型和數(shù)字型字段不接受空字符串。所以設(shè)置IntegerField,DateTimeField型字段可以為空時(shí),需要將blank,null均設(shè)為True。如果為True,空值將會(huì)被存儲(chǔ)為NULL,默認(rèn)為False。如果想設(shè)置BooleanField為空時(shí)可以選用NullBooleanField型字段。
(env8) D:\Desktop\env8\Scripts\mysite>python manage.py makemigrations就不會(huì)有下面的提示 (env8) D:\Desktop\env8\Scripts\mysite>python manage.py migrate 就行了中間不會(huì)設(shè)置數(shù)據(jù)類型(很容易出錯(cuò))(若要設(shè)置默認(rèn)值)
三、數(shù)據(jù)庫設(shè)計(jì)是整個(gè)網(wǎng)站開發(fā)的核心
補(bǔ)充: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'(添加字段的數(shù)據(jù)類型格式) 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>
看完上述內(nèi)容,你們對(duì)使用django怎么在原有表格中添加或刪除字段有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。