1

DateTimeField(default=datetime.datetime.now) を使用しているにもかかわらず、デフォルトのタイムスタンプを設定できません。列は非 null に設定されていますが、デフォルト値は設定されていません

私は自分のモデルを持っています

import datetime

database = PostgresqlDatabase(dbname,username,password,host)

class BaseModel(Model):
    class Meta:
        database = database

class UserInfo(BaseModel):
     id = PrimaryKeyField()
     username = CharField(unique=True)
     password = CharField()
     email = CharField(null=True)
     created_date = DateTimeField(default=datetime.datetime.now)

このモデルと以下のコードを使用してテーブルを作成すると

 database.connect()
 database.create_tables([UserInfo])

私はテーブルの下になっています

                                  Table "public.userinfo"
Column        |            Type             |                       Modifiers                       
--------------+-----------------------------+-------------------------    ------------------------------
 id           | integer                     | not null default    nextval('userinfo_id_seq'::regclass)
 username     | character varying(255)      | not null
 password     | character varying(255)      | not null
 email        | character varying(255)      | 
 created_date | timestamp without time zone | not null
Indexes:
    "userinfo_pkey" PRIMARY KEY, btree (id)
    "userinfo_username" UNIQUE, btree (username)

ここでは、テーブルの作成日はデフォルトに設定されていません

4

1 に答える 1

2

デフォルトのパラメーターを使用する場合、値は実際のテーブルおよび列定義の一部ではなく、Peewee によって設定されます。

試すcreated_date = DateTimeField(constraints=[SQL('DEFAULT CURRENT_TIMESTAMP')])

于 2016-06-25T09:47:40.383 に答える