0

我是 GAE 和 python 的初学者。我无法理解如何插入具有一对多关系的数据,而且我对自己在做什么也不太了解。

我正在尝试创建一个库存应用程序。基本上,我想在一个类别下插入产品。

我的数据库模型如下。

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

我希望有人帮助我了解何时提供解决方案。

4

1 回答 1

1

您正在尝试将字符串设置为 ReferenceProperty,因为 self.request.get 返回字符串类型。的 ' ref_category' 字段Product是 a db.ReferenceProperty,它接受 adb.KeyCategory对象,但您正试图将其设置为字符串。

你可以这样做:

def post(self):
    product = Product()
    product.ref_category = db.get(self.request.get('ref_category'))
    product.put()
于 2013-06-28T05:10:27.877 回答