私はかなり長い間このエラーで立ち往生していて、それが何を意味するのか理解できません。オブジェクトをmysqlデータベースに保存しようとすると発生します。何か案は?
助けてくれてありがとう!
私はかなり長い間このエラーで立ち往生していて、それが何を意味するのか理解できません。オブジェクトをmysqlデータベースに保存しようとすると発生します。何か案は?
助けてくれてありがとう!
同じ問題に遭遇し、それを解決しました。次のようなフォームをインスタンス化しました。
data = {'date' : datetime.now} #this is the problem
form = MyForm(data)
そのフォームは後で保存され、djangoはモデルに「日付」を設定しようとしました。しかし、datetime.nowは、明らかに日付ではなく関数を参照しています。私がやりたかったのはdatetime.now()でした
多分これは将来これに遭遇する人を助けるでしょう。
これはおそらく、Pythonが特定のデータ型(bool、string、intなど)を予期しているコードを実行しようとしているが、他の誤ったデータ型が提供されていることを意味します。
私の場合、「time」ライブラリを使用して日付文字列をdatetimeオブジェクトに変換すると表示されました。「time.strptime」の代わりに「datetime.strptime」を使用しただけで、問題は解決しました。
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)
両方とも機能しています。
「有効期限」はこのフィールドです
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}
)
str(yourvar)
Ouはあなたの変数を刺すように変換することができます。