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
查看数据库,新字段email已经加进来了,如果你设置了默认值,原来的这些数据的Email的值都会设为你设置的默认值。这个可视化工具下载的地址:http://download.csdn.net/download/liangshilin/10144260
好,这里该说一下如何让新添的字段可以设置为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