0

私はかなり長い間このエラーで立ち往生していて、それが何を意味するのか理解できません。オブジェクトをmysqlデータベースに保存しようとすると発生します。何か案は?

助けてくれてありがとう!

4

6 に答える 6

28

同じ問題に遭遇し、それを解決しました。次のようなフォームをインスタンス化しました。

data = {'date' : datetime.now} #this is the problem
form = MyForm(data)

そのフォームは後で保存され、djangoはモデルに「日付」を設定しようとしました。しかし、datetime.nowは、明らかに日付ではなく関数を参照しています。私がやりたかったのはdatetime.now()でした

多分これは将来これに遭遇する人を助けるでしょう。

于 2011-07-04T10:31:03.907 に答える
7

これはおそらく、Pythonが特定のデータ型(bool、string、intなど)を予期しているコードを実行しようとしているが、他の誤ったデータ型が提供されていることを意味します。

于 2010-11-29T19:06:27.533 に答える
1

私の場合、「time」ライブラリを使用して日付文字列をdatetimeオブジェクトに変換すると表示されました。「time.strptime」の代わりに「datetime.strptime」を使用しただけで、問題は解決しました。

于 2015-08-04T21:43:39.650 に答える
1

djangoの日時バリデーターはファイルにあります:

/path/to/project/venv/lib/python2.7/site-packages/django/utils/dateparse.py

または、現在のpythonインタープリターのサイトパッケージにあります。
そこを見て、正規表現を確認してください。私の場合、それを解決する方法は次のとおりです。

ended=datetime.fromtimestamp(time.time())
other=datetime.fromtimestamp(time.time())

# in the model:
ended = models.DateTimeField(blank=True, null=True) # or
other = models.DateTimeField(auto_now_add=False, blank=True)

両方とも機能しています。

于 2018-05-17T02:41:59.550 に答える
0

「有効期限」はこのフィールドです

expiration = models.DateTimeField(default=7)

そして、エラーのあるコードはこれでした:

ex = timedelta(minutes=expiration)                      
authobj, created = cls.objects.update_or_create(                         
    operator=operator,                                                   
    defaults={'transport':transport,'token':cls.generate_key(40),'expiration':ex}
)                                                                        

そして、このように設定することで解決しました(timedelta、dateの代わりに)

ex = datetime.now() + timedelta(minutes=expiration)                      
authobj, created = cls.objects.update_or_create(                         
    operator=operator,                                                   
    defaults={'transport':transport,'token':cls.generate_key(40),'expiration':ex}
)                                                                        
于 2017-06-30T13:31:53.630 に答える
-1
str(yourvar)

Ouはあなたの変数を刺すように変換することができます。

于 2013-09-04T08:17:09.593 に答える