0

参照カテゴリによって入力された選択オプションを使用して、POST 経由で新しい目標を追加しようとしています。ドロップダウンは正しく入力されますが、返された値から取得しているキーが ReferenceProperty エラーを引き起こしています。

models.py:

class Categories(db.Model):
  name = db.StringProperty(required=True)
  amount = db.FloatProperty(required=True)

class Goals(db.Model):
  name = db.StringProperty(required=True)
  amount = db.FloatProperty(required=True)
  category = db.ReferenceProperty(Categories)

add_goal.html:

select type="select" name="category" id="id_cat"  
{% for c in cats %}
option value='{{c.name}}'  {{ c.name }}  /option
{% endfor %}
/select>

修正版: {% for c in cat %} {{ c.name }} {% endfor %}

ビュー.py:

def post(self):
    cat_key = db.Key.from_path('Categories', self.request.get('category'))
    logging.info('cat_key= '+ str(cat_key))

    g = Goals(name=self.request.get('name'),
                category=cat_key,
                 amount=float(self.request.get('amount')))
    g.put()
    return webapp2.redirect('/view_goals')

修正版: def post(self): cat_key = db.Key.from_path('Categories', int(self.request.get('category')))

    g = Goals(name=self.request.get('name'),
                category=cat_key,
                 amount=float(self.request.get('amount')))
    g.put()
4

0 に答える 0