0

我正在尝试使用由引用类别填充的选择选项通过 POST 添加新目标。下拉列表正确填充,但我从返回的值中获得的键导致 ReferenceProperty 错误。

模型.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 cats %} {{ 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