Django Sqlite 資料庫,在已有表中新增新欄位
阿新 • • 發佈:2019-01-24
Django 使用預設的 sqlite 資料庫,想在已經建立的表中新增一個新的欄位,操作很簡單。
1、直接在你要新增新欄位的app的 models.py 檔案中新增,如下:
# -*- coding:utf-8 -*-
from __future__ import unicode_literals
from django.db import models
class Blog(models.Model):
name = models.CharField(max_length=100)
tagline = models.TextField()
email = models.CharField(max_length=30 ) # 要將要新增的新欄位 1
def __str__(self):
return self.name
2、然後在dos視窗中輸入:python manage.py makemigrations
3、輸入:1 (這裡要求你設定新建欄位的預設值,它會在新建這個欄位的同時把預設值也新增上去,)
4、如果不想讓他有值,我們直接輸 ”(中間沒有空格),一樣能達到效果,但是不能不設定預設值,那麼問題來了,如果是數值型別呢,預設值為 ” 顯然不行,設為0嘛,如果是年齡有不合適,怎麼辦呢?不急,我們下邊會說到。先把剩下步驟完成先。
5、最後一步,輸入:python manage.py migrate
好,這裡該說一下如何讓新添的欄位可以設定為null了,其實很簡單,如下 age欄位,將 ‘blank=True,null=True’ 新增到括號裡就行了,然後只需重複上面兩個步驟: python manage.py makemigrations -> python manage.py migrate 就能新增新欄位了,如果不是數值型,新增 ‘blank=True’ 就可省略設定預設值那步驟。
# -*- coding:utf-8 -*-
from __future__ import unicode_literals
from django.db import models
class Blog(models.Model):
name = models.CharField(max_length=100)
tagline = models.TextField()
email = models.CharField(max_length=30) # 要將要新增的新欄位 1
age = models.IntegerField(blank=True,null=True) # 新新增欄位 2
def __str__(self):
return self.name