0

データストアから提供されたデータを出力する単純なwebapphtmlページを作成しようとしています。ただし、次のエラーが継続的に発生しています。

    raise BadValueError('Property %s is required' % self.name)
BadValueError: Property category is required

これは、事前にプロパティを初期化する必要があるためだと聞きましたが、現時点では、これを行う適切な方法が見つかりませんでした。

以下は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)

以下は別のpages.pyに記載されています

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))

私のhtmlページは次のとおりです。

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!'
4

1 に答える 1

1

現在のデータストアには、categoryプロパティまたはその他の必須プロパティが入力されていないエンティティが含まれている可能性があります。これは、その前に他のエンティティを作成した後でモデルにプロパティを追加したときに発生することがあります。またはrequired=True、以前は必要なかったオプションをプロパティに追加することもできます。

開発データで遊んでいる場合は、データストアをクリアするか、すべてのQuestionエンティティを削除して、それが機能するかどうかを確認することをお勧めします。

それ以外の場合は、すべての必須フィールドに手動でデータを追加するか、required=Trueオプションを削除する必要があります。

于 2012-04-04T14:13:33.537 に答える