データストアから与えられたデータを出力する簡単なwebapp htmlページを作成しようとしています。しかし、私は継続的に、次のエラーを実行しています:GAEで「BadValueError:プロパティカテゴリが必要」
raise BadValueError('Property %s is required' % self.name)
BadValueError: Property category is required
私は事前に私のプロパティを初期化しなければならないためであると聞いているが、まだのように、これを行うための適切な方法を発見していません。
以下は、次のは、次のように私のHTMLページである
class SpPage(webapp.RequestHandler):
def printPage(self,path):
user = users.get_current_user()
template_values = getCommonValues(user)
if user:
template_values['questions'] = model.Question.all().fetch(100)
self.response.out.write(template.render(path, template_values))
else:
path = os.path.join(os.path.dirname(__file__), 'html/pleaseLogin.html')
self.response.out.write(template.render(path, template_values))
別pages.pyに与えられる
model.py
class Question(db.Model):
category = db.StringProperty(required=True)
question = db.StringProperty(required=True, multiline=True)
creator = db.StringProperty(required=True, multiline=True)
answer = db.StringProperty(required=True, multiline=True)
mustHave = db.StringProperty(required=False, multiline=True)
group = db.StringProperty(required=False)
に配置されている:
Questions<br/>
{% for eachQ in questions %}
<p>
<a href='/doQuestionPage?id={{eachQ.key}}'>{{eachQ.question}}</a><br/>
by {{eachQ.creator}}
</p>
{% endfor %}
データストアにデータを追加するクラス: 注:これはデータをポストするフォームに添付されていますこのクラスを使用します。すべてのコードがそこにあるわけではないので、「何か」などの変数が使用されていないと心配しないでください。それは今のところ働いているようです。
class AddQuestion(webapp.RequestHandler):
def doPost(self,something):
user = users.get_current_user()
template_values = getCommonValues(user)
c = self.request.get('cat')
q = self.request.get('question')
a = self.request.get('answer')
m = self.request.get('musthaves')
if user:
emailStr = user.email().lower()
if q and a and m:
newQuestion = model.Question(category = c, question = q, creator = emailStr, answer = a, mustHave = m)
newQuestion.put()
template_values['message'] = 'New question created!'
Sean、質問エンティティはどのように最初にデータベースに入るのですか? –
フォームを持つ別のページから追加されます。このフォームは別のクラスにPOSTします。私はフォームが機能しているのでデータがデータストアに格納されていることを知っています。私はまだgetsなどでデータを取得できます。 c = self.request.get(ここでは、 'cat') q = self.request.get( 'question') a = self.request.get( '答え') m = self.request.get( 'musthaves') newQuestion = model.Question(template_values ['message'] = '新しい質問が作成されました!'template_values ['message'] = '新しい質問が作成されました! –
はい、データストアからエンティティを取得しているときにこのエラーが表示されるのは絶対に意味がないため、エンティティをデータストアに格納するフローがコード内に存在することが強く疑われます。 –