2016-12-15 4 views
1

私はテーブルを作成するためにdjangoモデルを使用しています。テーブルにはinserted_timeカラムがあり、プレーンSQLを使用してデータを挿入していますので、insert sqlではデータベースが自動的にカラムに充填されるはずです(mysqlを使用する必要があるため) )。しかし、どのようにデフォルト値が現在のdjangoモデルで()のような列を作成するか。私はauto-nowを使用していますが、動作しません。django:デフォルト値now()のカラムを作成するには?

は更新:

を、私は、モデルを作成しました。その後、私は、移行後にMySQLデータベースをチェックし、テーブルの定義がある

class TestDaniel(models.Model): 

    inserted_time = models.DateTimeField(db_index = True,auto_now_add=True) 

:テーブル定義から

CREATE TABLE `orajob_testdaniel` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `inserted_time` datetime NOT NULL, 
    PRIMARY KEY (`id`), 
    KEY `orajob_testdaniel_e69592ad` (`inserted_time`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

、inserted_timeはデフォルト値を持っていません、私が望むのは、inserted_timeの列に対してnow()という既定値を持つことです。つまり、SQLを使ってデータを挿入したもの(djangoモデルではありません) o今度はその列に値を設定してください

+0

任意...コード?多分? –

答えて

2

DateFieldのデフォルト値の使用方法は、Djangoのドキュメントで明確に宣言されています。 Django DateField Documentation

ドキュメントによると、次の操作を実行できます。

inserted_time = models.DateTimeField(auto_now_add=True) 

これは、この分野へdatetime電流を設定します。この値はデフォルトで設定され、オブジェクトを作成すると設定されます。警告:このフィールドにカスタムdatetimeを設定しても、無視されます。

プレーンSQLを使用してオブジェクトを作成しても機能しません。デフォルト値を設定するには、Django自身のORMを使用する必要があります。

関連する問題