2014-10-12 3 views
0

python과 함께 google-app-engine을 사용 중이며 데이터 스토어 객체를 반복 할 수 없습니다.데이터 저장소 객체를 반복 할 수 없습니다.

내 DB 모델 :

class Page(db.Model): 
    url = db.StringProperty(required=True) 
    author = db.StringProperty(required=True) 
    content = db.TextProperty(required=True) 
    created = db.DateTimeProperty(auto_now_add = True) 

오류가 발생하는 곳은 다음과 같습니다

pages = Page.all().filter("url = ", link_id).order("-created") 

오류 : 내가 함께 페이지를 가져 오는하고

def generate_links(self, pages): 
    urls = [] 
    for i, page in pages: 
     urls.append(page.url + "?v=" + i) 

    return urls 

을 :

Traceback (most recent call last): 
File "/opt/google-appengine-python/lib/webapp2-2.5.2/webapp2.py", line 1535, in __call__ 
    rv = self.handle_exception(request, response, e) 
File "/opt/google-appengine-python/lib/webapp2-2.5.2/webapp2.py", line 1529, in __call__ 
    rv = self.router.dispatch(request, response) 
File "/opt/google-appengine-python/lib/webapp2-2.5.2/webapp2.py", line 1278, in default_dispatcher 
    return route.handler_adapter(request, response) 
File "/opt/google-appengine-python/lib/webapp2-2.5.2/webapp2.py", line 1102, in __call__ 
    return handler.dispatch() 
File "/opt/google-appengine-python/lib/webapp2-2.5.2/webapp2.py", line 572, in dispatch 
    return self.handle_exception(e, self.app.debug) 
File "/opt/google-appengine-python/lib/webapp2-2.5.2/webapp2.py", line 570, in dispatch 
    return method(*args, **kwargs) 
File "/home/Drive/main.py", line 197, in generate_links 
    for i, page in pages: 
TypeError: 'Page' object is not iterable 

그러나, 나는 사용 jinja2에 페이지를 반복 할 수 있습니다

{% for page in pages %} 
{% endfor %} 

감사 나를 도와!

답변

0

오류는 pages을 반복하는 것이 아니라 각 페이지 개체를 ipage의 두 변수로 나눌 때 발생합니다. 작업을 수행하려면 enumerate에 넣어야합니다.

for i, page in enumerate(pages): 
+0

감사합니다. – fwind

관련 문제