2013-09-01 2 views
0

사용자 테이블이 있으며 두 개의 필드가 있습니다. 매일 하나의 필드를 업데이트하고 싶습니다. 어떻게해야합니까? 내 코드 :google appengine-python-ndb로 데이터를 업데이트하려면 어떻게해야합니까?

class User(ndb.Model): 
    username = ndb.StringProperty() 
    something = ndb.StringProperty(repeated=True) 
    created_date = ndb.DateTimeProperty(auto_now_add=True) 
    updated_date = ndb.DateTimeProperty(auto_now_add=True) 

뭔가 필드를 변경하려면하지만이 어떻게 할 수 있습니까?

+0

데이터 저장소에 대한 생각, 엔티티가있는 테이블이없고, 개별 엔티티를 가져오고 엔티티의 속성을 업데이트 한 다음 엔티티를 쓰는 (put) 방법을 변경해야합니다. –

답변

1

당신은 다음과 같이 수동으로하지 automathic 의미하는 경우

#Assuming you already know the key of the entity you want to change. 

user = user_key.get()   
user.something = 'new something'  
user.put() 
+0

아니요, 열쇠를 모릅니다. 사용하지 않았습니다. 업데이트하려면 열쇠가 필요합니까? –

+0

글쎄, 업데이트 할 엔티티가 무엇인지 알아야합니까? 엔터티가 키에서 가져 오는 대신 직접 사용하는 것을 알고있는 경우. – AlexTemina

+0

어떻게 얻을 수 있습니까 user_key.get() –

1

당신이 당신의 User 객체의 모든 통과하려면, 당신은 같은 것을 할 수 있습니다 :

for user in User.query(): 
    user.updated_date = datetime.datetime.now() 
    user.put() 

이것은 꽤 느리지 만 많은 사용자가없는 한 작업을 수행합니다. 매일 User 개체를 모두 업데이트하려면 cronMapReduce을 조사하고 싶을 것입니다.

관련 문제