2012-05-04 2 views
-1

Google 애플리케이션 엔진 연습을 수행 중이며 jinja 템플릿을 올바르게 렌더링하는 데 문제가 있습니다.GQL 쿼리를 사용하여 jinja2 템플릿을 렌더링 할 수 없습니다.

다음 코드는 내가 뭘 기대하지

(그것은 내 GQL 쿼리에서 값 템플릿을 렌더링 할 수 있습니다 :

def get(self): 
    blogpost = db.GqlQuery("SELECT * FROM BlogPosts ORDER BY created ASC") 
    self.render('blog.html',blogpost=blogpost) 

그 코드는 내가 좋아하는 태그를 사용할 때 내 blog.html 템플릿을 렌더링 {{post.subject}}

이 코드 나 템플릿 렌더링하지 않습니다. 난 당신이 ID에 의해 이런 식으로 쿼리 할 수 ​​있다고 생각

def get(self): 
    path = self.request.path[1:] 
    post = db.GqlQuery("SELECT * FROM BlogPosts WHERE ID = " + str(path)) 
    self.render('permalink.html',post=post) 
+1

'내 템플릿을 렌더링하지 않습니다'는 의미는 무엇입니까? 오류가 발생합니까? 템플릿에 값이 없습니까? 어떤 경로가 로깅을 시도 했습니까? 실제 게시물을 얻었습니까? – aschmid00

+0

@ aschmid00 오류가 발생하지 않습니다. {{templatevalues}} 중 어느 것도 내 쿼리 값으로 채워지지 않은 상태에서 내 템플릿의 html을 얻습니다. 경로는 1과 같은 int입니다. int를 path로 사용하고 str으로 캐스팅하여 gql 문이 작동하는지 확인합니다. 내 쿼리로 인해 실제 게시가 결정되는지는 알 수 없습니다. 당신이 어떻게하는지 말해 줄 수 있다면 유용 할 것입니다. – somas1

+0

로깅 모듈을 사용하십시오. – aschmid00

답변

1

를 ID가 너무 엔티티 키의 일부입니다 :

SELECT * FROM YourModel where __key__ = KEY('YourModel', <numeric_id>) 

이렇게하면 원하는 결과를 얻을 수 있습니다.

+0

또는 쿼리를 모두 피하고'YourModel.get_by_id'를 사용하십시오. 여기서 쿼리를 수행 할 이유가 없습니다. –

관련 문제