【django】 models中的字段属性
2015-02-11 16:48
405 查看
进入django编程中我们建立的app文件夹下的models.py文件中
为了举例说明,让我们把Book模块修改成允许 publication_date为空。修改后的代码如下:
#blank=True 允许输入一个空值
#null=True 指定一个字段允许为NULL
添加null=True比添加blank=True复杂。因为null=True改变了数据的语义,即改变了CREATE TABLE语句,把publication_date字段上的NOT NULL删除了。
要完成这些改动,我们还需要更新数据库。
出于某种原因,Django不会尝试自动更新数据库结构。所以你必须执行ALTER TABLE语句将模块的改动更新至数据库。
像先前那样,你可以使用manage.py dbshell进入数据库服务环境。
以下是在这个特殊情况下如何删除NOT NULL:
(注意:以上SQL语法是PostgreSQL特有的。)
为了举例说明,让我们把Book模块修改成允许 publication_date为空。修改后的代码如下:
#blank=True 允许输入一个空值
#null=True 指定一个字段允许为NULL
from django.db import models from django.contrib import admin
class Book(models.Model): title = models.CharField(max_length=100) authors = models.ManyToManyField(Author) publisher = models.ForeignKey(Publisher) publication_date = models.DateField(blank=True, null=True )
添加null=True比添加blank=True复杂。因为null=True改变了数据的语义,即改变了CREATE TABLE语句,把publication_date字段上的NOT NULL删除了。
要完成这些改动,我们还需要更新数据库。
出于某种原因,Django不会尝试自动更新数据库结构。所以你必须执行ALTER TABLE语句将模块的改动更新至数据库。
像先前那样,你可以使用manage.py dbshell进入数据库服务环境。
以下是在这个特殊情况下如何删除NOT NULL:
ALTER TABLE books_book ALTER COLUMN publication_date DROP NOT NULL;
(注意:以上SQL语法是PostgreSQL特有的。)
相关文章推荐
- python3 django models保存filefiled字段统一目录、不修改文件名的方法
- django models返回数据根据某字段倒序排列
- Django models字段查询谓词表
- django中向models.py添加新字段
- 在django models中取得一个字段的distinct值
- [置顶] python3 django models保存filefiled字段统一目录、不修改文件名的方法
- Django 数据模型字段及属性
- 在django models中取得一个字段的distinct值
- Django中ORM模型总结(二)[模型类的对应关系,模型类的属性,字段类型]
- django -- models数据库操作---字段及参数
- Django models中多对多字段的反查询
- 【django】自定义列表 models字段显示
- Django自定义列表 models字段显示
- Django models 字段
- django ORM中models的字段以及参数
- Django 模型类中属性字段的限制
- Django中 如何修改models字段的默认值
- django models 增加字段(或新表)后如何同步到数据库
- django models的字段类型
- 在django models中取得一个字段的distinct值