gpt4 book ai didi

django - 为 Django DateField 和 Postgresql 指定默认值

转载 作者:行者123 更新时间:2023-11-29 12:43:37 24 4
gpt4 key购买 nike

我正在运行 Django 1.9.5 和 PostgreSQL 9.5。我的应用程序的模型是:

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;

当我运行 migrate 时,没有任何错误,并且创建的表没有任何默认值。这在 SQL 中很容易做到。从 PostgreSQL 创建表脚本:

"userStartEmployment" date DEFAULT '2015-01-01'::date,

为此,我很想放弃使用 Django,但我真的很想弄清楚如何尽可能多地利用该框架。

我如何设置一个默认值作为一个设定值(即不是从类似 default=datetime.now 的东西派生的)?

最佳答案

Django 从不在数据库中设置默认值。不过,它会很乐意使用您给它的任何值作为默认值,因此完全可以传递静态日期:

userStartEmployment = models.DateField(default=datetime.date(2015,1,1))

关于django - 为 Django DateField 和 Postgresql 指定默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36846824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com