欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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(這里要求你設置新建字段的默認值,它會在新建這個字段的同時把默認值也添加上去,)

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

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

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

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

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都有問題,上網上查了一圈也都有問題,用了什么--fake也沒用,最后這樣解決了

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

總結

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

相關文章

最新評論