gpt4 book ai didi

python - 来自 ndb.DateTimeProperty(auto_true=now) 的 ndb.CompulatedProperty 第一次调用错误

转载 作者:行者123 更新时间:2023-12-01 05:38:50 25 4
gpt4 key购买 nike

我有一个 ndb.Model,它有一个 ndb.DateTimeProperty 和一个 ndb.CompulatedProperty,它使用 ndb.DateTimeProperty 创建时间戳。

import time
from google.appengine.ext import ndb

class Series(ndb.Model):
updatedDate = ndb.DateTimeProperty(auto_now=True)
time = ndb.ComputedProperty(lambda self: time.mktime(self.updatedDate.timetuple()))

我遇到的问题是第一次调用 .put() (seriesObj 只是从 Series 类创建的对象)

seriesObj.put()

此时ndb.DateTimeProperty为空。我收到以下错误:

File "/main.py", line 0, in post series.put()
time = ndb.ComputedProperty(lambda self: time.mktime(self.updatedDate.timetuple()))
AttributeError: 'NoneType' object has no attribute 'timetuple'

我可以看出,这只是因为 ndb.DateTimeProperty 未设置,但我不知道如何在 ndb.CompulatedProperty 读取它之前设置它。

这不是 ndb.CompulatedProperty 的问题,因为我已经使用 ndb.DateTimeProperty 集对其进行了测试,并且工作正常。

任何和所有的帮助都会很棒!

最佳答案

问题解决了,其实很简单。我只是编辑了该行

updatedDate = ndb.DateTimeProperty(auto_now=True)

包含默认参数

updatedDate = ndb.DateTimeProperty(auto_now=True, default=datetime.datetime.now())

还必须导入日期时间模块

import datetime

更新后,就可以毫无错误地创建对象。现在它不仅运行不会出错,而且还将 updateDate 的初始值设置为当前日期和时间。不幸的是 auto_now 参数不会自动执行此操作。

感谢所有花时间帮助我解决此问题的人!

关于python - 来自 ndb.DateTimeProperty(auto_true=now) 的 ndb.CompulatedProperty 第一次调用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18170128/

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