gpt4 book ai didi

python - 使用 db.ReferenceProperty 引用 Google App Engine 中的其他表

转载 作者:太空宇宙 更新时间:2023-11-03 19:18:48 24 4
gpt4 key购买 nike

我有一个由表格填充的模型(公司类别) - 简单的名称等。然后我有一个公司模型,我想将这两个模型链接在一起,以便我在填充的下拉框中有类别。

class CompanyCategory(db.Model):
categoryname = db.StringProperty(required=True)

class Company(db.Model):
companyurl = db.StringProperty(required=False)
companycategory = db.ReferenceProperty(CompanyCategory, collection_name='category')

但是,当我这样做时,我收到以下错误:

<class 'google.appengine.ext.db.DuplicatePropertyError'>: Class CompanyCategory already has property categoryname 
Traceback (most recent call last):
File "/base/data/home/apps/XXX/1.358759458095086806/showcompanies.py", line 52, in <module>
class Company(db.Model):
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 514, in __init__
_initialize_properties(cls, name, bases, dct)
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 429, in _initialize_properties
attr.__property_config__(model_class, attr_name)
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 3656, in __property_config__
self.collection_name))

我该如何进行这项工作?我看过一些例子,但在这种情况下我无法工作。我怎样才能使公司类别成为一个列表。

表中的内容如下:

公司类别实体

‹ Prev 20 1-1 Next 20 ›
ID/Name categoryname
id=96001 ss
<小时/>

这就是模型定义相反的地方。我希望每个公司都有一个从表格中填充的类别。通过以下定义,我可以获得类似于我正在寻找的东西:

class CompanyCategory(db.Model):
categoryname = db.StringProperty(required=False)
def __unicode__(self):
return u'%s' % (self.categoryname)

class Company(db.Model):
companyurl = db.StringProperty(required=False)
companyname = db.StringProperty(required=False)
companydesc = db.TextProperty(required=False)
companyaddress = db.PostalAddressProperty(required=False)
companypostcode = db.StringProperty(required=False)
companyemail = db.EmailProperty(required=False)
companycountry = db.StringProperty(required=False)



companyvalid = db.BooleanProperty()
companyentrytime = db.DateTimeProperty(auto_now_add=True)
companylatlong = db.GeoPtProperty()
companycategory = db.ReferenceProperty(CompanyCategory)

现在,当我要添加公司时,我会看到一个下拉框 - 由表中的值填充。但是,我没有在提交时将下拉列表中的值填充到数据存储中的文本值中。这应该如何完成?

最佳答案

将代码粘贴到 shell.appspot.com 中效果很好 - 因此无论问题的原因是什么,您的示例代码都不能代表问题。正如 Christopher Ramirez 所建议的,您可能会在同一模型中或在该模型的父类中声明 companycategory 两次。

关于python - 使用 db.ReferenceProperty 引用 Google App Engine 中的其他表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10499747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com