亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Django數(shù)據(jù)庫如何在原有表中添加新字段

 更新時間:2023年09月15日 16:56:29   作者:北望灬CTO  
這篇文章主要介紹了Django數(shù)據(jù)庫如何在原有表中添加新字段問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Django數(shù)據(jù)庫在原有表中添加新字段

(注:本人用的pycharm開發(fā)工具)

1、在你要添加新字段的app的 models.py 文件中添加需要新增的字段(這里新增的是dress字段):

from django.db import models
# Create your models here.
class Test(models.Model):
    name=models.CharField(max_length=20)
    age=models.IntegerField(blank=True,null=True)
    sex=models.CharField(max_length=2)
    dress=models.CharField(max_length=1000)

2、在工程目錄打開命令行窗口輸入:python manage.py makemigrations AppTest(個人App文件名)

(我的是pycharm,如圖)

3、輸入:1(這里要求你設(shè)置新建字段的默認(rèn)值,它會在新建這個字段的同時把默認(rèn)值也添加上去,)

4、如果不想讓它有值,我們直接輸''(中間沒有空格),一樣能達(dá)到效果,但是不能不設(shè)置默認(rèn)值,(如果是數(shù)值類型呢,默認(rèn)值為 ''不行,如果是年齡,需設(shè)置blank=True和null=True。) 

  • blank:設(shè)置為True時,字段可以為空。設(shè)置為False時,字段是必須填寫的。字符型字段CharField和TextField是用空字符串來存儲空值的。如果為True,字段允許為空,默認(rèn)不允許.
  • null:設(shè)置為True時,django用Null來存儲空值。日期型、時間型和數(shù)字型字段不接受空字符串。所以設(shè)置IntegerField,DateTimeField型字段可以為空時,需要將blank,null均設(shè)為True。如果為True,空值將會被存儲為NULL,默認(rèn)為False。如果想設(shè)置BooleanField為空時可以選NullBooleanField型字段。

5、最后輸入:python manage.py migrate

查看數(shù)據(jù)庫,新字段已經(jīng)加進(jìn)去了,如果你設(shè)置了默認(rèn)值,原來的這些數(shù)據(jù)的值都會設(shè)為你設(shè)置的默認(rèn)值。

Django無法添加新字段,django.db.utils.OperationalError: (1050, "Table app already exists")

要修改的表長這樣,我要添加一個叫做category的字段

class AppInfo(models.Model):
? ? name = models.CharField(max_length=255, null=True)
? ? version = models.CharField(max_length=50, null=True)
? ? category = models.CharField(max_length=30, null=True)##這一行是我要新添加的

無論是python makemigartions 還是python migrate都有問題,上網(wǎng)上查了一圈也都有問題,用了什么--fake也沒用,最后這樣解決了

python manage.py shell
>>> from django.db import connection
>>> cursor = connection.cursor()
>>> cursor.execute('ALTER TABLE appId_appinfo add category varchar(30) default ""')

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論