2012-06-28 5 views
2

게시물을 사용하여 사용자가 선택한 라디오 단추를 기반으로 매개 변수를 가져오고 올바른 작업이 발생하지만 페이지 아래에 전체 새 페이지가 나타납니다 사용자가 로그인하지 않은 상태가됩니다. 무슨 일이 일어나고 있는지 잘 모르겠지만 여기에 해당 코드가 있습니다. 물론 HTML과 python 및 jinja2가있는 Google Appengine을 사용하고 있습니다. 여기POST 메서드가 올바른 게시물을 수행 한 다음 전체 페이지를 다시 렌더링합니다.

HTML :

<form method="POST"> 
<input type="radio" name="category" value="discussion">Discussion<br> 
<input type="radio" name="category" value="adventures">Adventures<br> 
<input type="radio" name="category" value="reviews">Reviews<br> 
<input type="radio" name="category" value="badges">Badge Applications<br> 

<input type="submit" class="btn btn-medium btn-primary" value="Filter!"> 
</form> 

파이썬 여기 :

def post(self): 
    category = self.request.get('category') 

    if category: 
     user = users.get_current_user() 
     logout = users.create_logout_url(self.request.uri) 
     global visits 

     category = self.request.get('category')     
     posts = db.GqlQuery("select * from Post where category=:1 order by created desc limit 30", category) 
     self.render("home.html", posts=posts, user=user, visits=visits, logout=logout) 

내 home.html을의 문서 : 나는 사용자가 로그인 한되지 않는다는 것을 이해

질문에서
 {% for post in posts %} 
      {{post.render() | safe}} 
      <br> 
     {% endfor %} 

답변

0

, 이 경우 다음을 시도하십시오.

def post(self):  
    category = self.request.get('category')  
    if category:   
    user = users.get_current_user()   
    if user: 
     logout = users.create_logout_url(self.request.uri)   
     global visits   
     category = self.request.get('category')       
     posts = db.GqlQuery("select * from Post where category=:1 order by created desc limit 30", category)   
     self.render("home.html", posts=posts, user=user, visits=visits, logout=logout) 
    else: 
     self.redirect(users.create_login_url(self.request.uri)) 
+0

사용자가 로그인되어 있어야하며 페이지가 올바르게 처음 렌더링되지만 올바른 렌더링 아래는 사용자가 로그인하지 않은 나쁜 페이지입니다. – exployre

+0

문제가 될 수 있다고 생각합니다. 모든

태그를 닫았 기 때문에 페이지에서 양식을 모두 보냈습니다. 의미가 없습니다. 특정 입력이없는 입력 버튼을 사용하면 입력 된 특정 양식 이외의 것을 제출할 수 있습니까? – exployre

+0

그래서 당신의 추가와 else 문장을 페이지 하단의 elif 문장으로 바꾸면 고칠 수있었습니다. 감사! – exployre