您的位置:首页 > 编程语言 > Go语言

【django】 models中的字段属性

2015-02-11 16:48 405 查看
进入django编程中我们建立的app文件夹下的models.py文件中

为了举例说明,让我们把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特有的。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: