我有以下模型定义:
class Logs(DictModel):
song = db.ReferenceProperty(Song)
singer = db.ReferenceProperty(Singer)
download_count = db.IntegerProperty(default=0)
dt = db.DateTimeProperty()
我想要更新每天下载歌曲的次数。因此,一旦用户点击下载按钮,我就会向视图发布帖子请求,以下是我的处理方式,如下所示:
基本逻辑:如果存在任何下载日志,对于特定日期的歌曲,将计数递增1并更新该值,除非计数不存在,请创建新对象并将其放入数据库。
def post(self):
sid = int(self.request.POST["sid"])
Sng = db.get(db.Key.from_path('Song', sid))
try:
dlogs = Logs.all().filter("dt = ",datetime.date.today()).filter("song =", Sng).get()
dlogs[0].download_count += 1
except Exception as e:
logging.info(e)
dlogs = HourLogs(song = Sng,
singer = Singer,
download_count = 1,
dt = datetime.date.today())
dlogs.put()
self.response.out.write(desc)
一切顺利,如果它转到除了blosk,但是当已经存在一个日志实体时,在更新该实体的任务中我得到以下错误:
AttributeError: "'list' object has no attribute 'put'"
请假设使用的所有变量都是万无一失的。我测试了它们。该块位于def post(self)
块内。
我缺少什么?