2012-05-01 1 views
0

내부 서버 오류가 계속 발생합니다. - 'BadValueError : 속성 내용이 필요합니다. blog_table을 렌더링 할 템플릿에 전달할 때 발생합니다. 여기 코드는 다음과 같습니다내부 서버 오류 - Google App 서버 (속성 내용 필수)

main.py :

import os 
import webapp2 
import jinja2 

from google.appengine.ext import db 

jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__),'templates')), autoescape = True) 

class Handler(webapp2.RequestHandler): 
    def write(self,*a,**kw): 
     self.response.out.write(*a,**kw) 

    def render_str(self,template,**params): 
     t = jinja_env.get_template(template) 
     return t.render(params) 

    def render(self,template,**kw): 
     self.write(self.render_str(template,**kw)) 

class Blog(db.Model): 
    subject = db.StringProperty(required = True) 
    content = db.TextProperty(required = True) 
    created = db.DateTimeProperty(auto_now_add = True) 

class MainPage(Handler): 
    def render_front(self, subject="", content="", error=""): 
     blog_table = db.GqlQuery("SELECT * FROM Blog ORDER BY created DESC") 
     self.render("blog.html",subject = subject,content = content,error = error,blog_table = blog_table) 

    def get(self): 
     self.render_front() 

    def post(self): 
     subject = self.request.get("subject") 
     content = self.request.get("content") 

     if subject and content: 
      b = Blog(subject = subject, content = content) 
      b.put() 
      self.redirect("/") 

     else: 
      error = "we need both a subject and some content" 
      self.render_front(subject,content,error) 

app = webapp2.WSGIApplication([('/', MainPage)],debug=True) 

HTML :

<!DOCTYPE html> 

<html> 
    <head> 
     <title>Blog</title> 
    </head> 
    <body> 
     <h1>Blog</h1> 

     <form method="post"> 
      <label> 
       <div>Subject</div> 
       <input type="text" name="subject" value="{{subject}}"> 
      </label> 
      <label> 
       <div>Content</div> 
       <textarea name="content" value="{{content}}"></textarea> 
      </label> 
      <div class="error">{{error}}</div> 
      <input type="submit"> 
     </form> 

     <hr> 
    {% for post in blog_table %} 
     <div class="post"> 
      <div class="subject">{{post.subject}}</div> 
      <pre class="content">{{post.content}}</pre> 
     </div> 
    {% endfor %} 

    </body> 
</html> 

오류가 http://udacity-cs253-a31.appspot.com/

감사에 가서 볼 수 있습니다.

+0

나를 위해 일했습니다 ... – Nix

+0

blog_table을 self.render로 전달하지 않으면 작동하지만 출력을 표시하려고합니다. 그것을 밖으로 시도하고 오류를 참조하십시오. 감사. – GawecoT

+0

방금 ​​시도했지만 오류가 없었습니까? 내가 그것을보기 위해 무엇을 입력해야 실패합니까? – Nix

답변

4

블로그 모델을 변경하고 최근에 콘텐츠 속성을 추가 한 것 같습니다.

콘텐츠가없는 데이터 저장소의 일부 Blog 모델 인스턴스가 있습니다. 코드를로드하려고하면 코드가 실패합니다. Content로 Blog 인스턴스를로드하면 모든 것이 잘됩니다.

데이터 저장소를 거쳐야하며 모든 블로그 인스턴스에 콘텐츠가 있어야합니다.

+0

이것은 작동하는 것 같습니다. 데이터베이스를 플러시했습니다. 나는 투표를 할 것이지만 나는 명성이 없다. 감사! – GawecoT

+0

@ GawecoT 어떻게 데이터베이스를 플러시 했습니까? – Chris