Django數(shù)據(jù)庫(kù)如何在原有表中添加新字段
Django數(shù)據(jù)庫(kù)在原有表中添加新字段
(注:本人用的pycharm開(kāi)發(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、在工程目錄打開(kāi)命令行窗口輸入:python manage.py makemigrations AppTest(個(gè)人App文件名)
(我的是pycharm,如圖)

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

4、如果不想讓它有值,我們直接輸''(中間沒(méi)有空格),一樣能達(dá)到效果,但是不能不設(shè)置默認(rèn)值,(如果是數(shù)值類(lèi)型呢,默認(rèn)值為 ''不行,如果是年齡,需設(shè)置blank=True和null=True。)
- blank:設(shè)置為T(mén)rue時(shí),字段可以為空。設(shè)置為False時(shí),字段是必須填寫(xiě)的。字符型字段CharField和TextField是用空字符串來(lái)存儲(chǔ)空值的。如果為T(mén)rue,字段允許為空,默認(rèn)不允許.
- null:設(shè)置為T(mén)rue時(shí),django用Null來(lái)存儲(chǔ)空值。日期型、時(shí)間型和數(shù)字型字段不接受空字符串。所以設(shè)置IntegerField,DateTimeField型字段可以為空時(shí),需要將blank,null均設(shè)為T(mén)rue。如果為T(mén)rue,空值將會(huì)被存儲(chǔ)為NULL,默認(rèn)為False。如果想設(shè)置BooleanField為空時(shí)可以選NullBooleanField型字段。

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

查看數(shù)據(jù)庫(kù),新字段已經(jīng)加進(jìn)去了,如果你設(shè)置了默認(rèn)值,原來(lái)的這些數(shù)據(jù)的值都會(huì)設(shè)為你設(shè)置的默認(rèn)值。
Django無(wú)法添加新字段,django.db.utils.OperationalError: (1050, "Table app already exists")
要修改的表長(zhǎng)這樣,我要添加一個(gè)叫做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)##這一行是我要新添加的
無(wú)論是python makemigartions 還是python migrate都有問(wèn)題,上網(wǎng)上查了一圈也都有問(wèn)題,用了什么--fake也沒(méi)用,最后這樣解決了
python manage.py shell
>>> from django.db import connection
>>> cursor = connection.cursor()
>>> cursor.execute('ALTER TABLE appId_appinfo add category varchar(30) default ""')總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python for循環(huán)與getitem的關(guān)系詳解
這篇文章主要介紹了Python for循環(huán)與getitem的關(guān)系詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
Python如何實(shí)現(xiàn)自動(dòng)生成指定文件名并自定義后綴名
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)名稱(chēng)為000- 999-文件的自動(dòng)生成,并且后綴名可以自定義,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02
python中使用xlrd讀excel使用xlwt寫(xiě)excel的實(shí)例代碼
這篇文章主要介紹了python中使用xlrd讀excel使用xlwt寫(xiě)excel的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-01-01
運(yùn)用PyTorch動(dòng)手搭建一個(gè)共享單車(chē)預(yù)測(cè)器
這篇文章主要介紹了運(yùn)用PyTorch動(dòng)手搭建一個(gè)共享單車(chē)預(yù)測(cè)器,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
python異步編程 使用yield from過(guò)程解析
這篇文章主要介紹了python異步編程 使用yield from過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
Python常用數(shù)據(jù)類(lèi)型之列表使用詳解
列表是Python中的基礎(chǔ)數(shù)據(jù)類(lèi)型之一,其他語(yǔ)言中也有類(lèi)似于列表的數(shù)據(jù)類(lèi)型,比如js中叫數(shù)組,他是以[ ]括起來(lái),每個(gè)元素以逗號(hào)隔開(kāi),而且他里面可以存放各種數(shù)據(jù)類(lèi)型。本文將通過(guò)示例詳細(xì)講解列表的使用,需要的可以參考一下2022-04-04
Django form表單與請(qǐng)求的生命周期步驟詳解
這篇文章主要介紹了Django-form表單與請(qǐng)求的生命周期,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06

