我能够从具有条件的db模型中获取一行,但无法更新该行中的特定列:
我的数据库模型如下:
class UserDB(db.Model):
userNickName = db.StringProperty()
userEmailID = db.StringProperty()
userID = db.StringProperty()
createdAt = db.DateTimeProperty(auto_now_add=True)
logedInAt = db.DateTimeProperty(auto_now=True)
我可以通过以下查询检查用户是否存在于我们的UserDB模型中:
q = db.GqlQuery("SELECT userNickName FROM UserDB WHERE userEmailID =:1", user.email())
useremailid = q.get()
if useremailid is None:
logging.error('user is not loged in earlier so create a row for that user')
userDB = UserDB(userNickName = user.nickname(),
userEmailID = user.email(),
userID = user.user_id()
)
userDB.logedInAt = datetime.now()
userDB.put() # Insert a row for a user
else: # User exist in our UserDB, just update `logInAt` column
logging.error("update the login time, since user is already user")
# How do i Update logedInAt column?
在else部分,一旦我知道用户已经存在于我们的数据库中,我只想用当前时间戳更新loginInAt
字段,我该怎么做?,我在googleappengine上搜索了很多,但是找不到。你知道吗
谢谢
克里希纳
调用
q.get()
的结果不是id,而是实际的UserDB对象。因此可以直接更新并保存:(顺便说一下,UserDb对于模型类来说是个奇怪的名字:它应该只是User。也不需要在所有字段名前面加前缀。)
相关问题 更多 >
编程相关推荐