我是GAE和python的初学者。我无法理解如何使用一对多关系插入数据,而且我对我正在做的事情知之甚少。
我正在尝试创建一个库存应用。基本上,我想在每个类别下插入产品。
我的db模型如下。
class Category(db.Model):
category = db.StringProperty()
date = db.DateTimeProperty(auto_now_add=True)
class Product(db.Model):
ref_category = db.ReferenceProperty(Category)
name = db.StringProperty()
我能够在数据存储区中插入类别,但每个类别的产品是我遇到问题的地方。
我有一个类似下面的表格,我不确定这是否也是正确的方法。是否也使用隐藏输入中的密钥插入?
<form action="/addproduct" method="post">
<div><label>Product Name:</label><br /><input type="name" name="name" /></div>
<div><input type="hidden" name="ref_category" value="{{selected_category.key()}}" /></div>
<input type="submit" value="Add Candidate">
</form>
然后,我的插入代码在下面,我遇到了麻烦。我试图了解在线提供的资源,但我的脑细胞不能再处理它了。
def post(self):
product = Product()
product.name = self.request.get('name')
product.ref_category = self.request.get('ref_category')
product.put()
我希望有人帮助我了解提供解决方案的时间。
答案 0 :(得分:1)
您正在尝试将字符串设置为ReferenceProperty,因为self.request.get返回字符串类型。 ref_category
的“Product
”字段为db.ReferenceProperty
,其中包含db.Key
或Category
个对象,但您尝试将其设置为字符串。
你可以这样做:
def post(self):
product = Product()
product.ref_category = db.get(self.request.get('ref_category'))
product.put()