1
我正在运行Django 1.9.5和PostgreSQL 9.5。我的应用程序的模型是:指定Django DateField和Postgresql的默认值
from django.db import models
class users(models.Model):
userId = models.AutoField(primary_key=True)
userUserKey = models.CharField(max_length=255)
userUserName = models.CharField(max_length=255)
userLastName = models.CharField(max_length=255)
userFirstName = models.CharField(max_length=255)
userActive = models.IntegerField()
userStartEmployment = models.DateField(default='2015-01-01")
userEndEmployment = models.DateField(null=True)
迁移文件显示:
...
('userStartEmployment', models.DateField(default='2015-01-01')),
...
sqlmigrate显示:
BEGIN;
--
-- Create model users
--
CREATE TABLE "login_users" (
"userId" serial NOT NULL PRIMARY KEY,
"userUserKey" varchar(255) NOT NULL,
"userUserName" varchar(255) NOT NULL,
"userLastName" varchar(255) NOT NULL,
"userFirstName" varchar(255) NOT NULL,
"userActive" integer NOT NULL,
"userStartEmployment" date NOT NULL,
"userEndEmployment" date NULL);
COMMIT;
当我运行迁移,没有错误并创建表没有任何默认值。这在SQL中很重要。从一个PostgreSQL创建表脚本:
"userStartEmployment" date DEFAULT '2015-01-01'::date,
我很想保释使用Django的,但我真的很想搞清楚如何利用框架,尽我所能。
如何设置一个默认值是一个设定值(即不是从类似于default=datetime.now
的东西中派生出来的)?
如果我理解你说的话,我不会和Django得到什么我得到了原始的SQL脚本。但是,通过使用框架(即模型)向数据库添加值,Django会向其中添加一条新记录到数据库时包含“2015-01-01”的缺省日期值。我有这个权利吗? – 5280Angel
是的,这是正确的。 –