所以我有两个模型类:
class Dog(db.model):
dogName = StringProperty()
dogBreed = StringProperty()
class Cat(db.model):
catName = StringProperty()
catBreed = StringProperty()
然后我有第三个模型类来保存所有图片
class Images(db.model):
imageReference = ReferenceProperty(*Animal*, collection_name = 'allImages')
imageURL = StringProperty()
动物是狗或猫。显然这不会编译。
现在我的问题是:有没有办法可以将猫图片放入狗图片中?或者我需要创建更多这样的模型:
class DogImages(db.model):
imageReference = ReferenceProperty(Dog, collection_name = 'allImages')
imageURL = StringProperty()
class CatImages(db.model):
imageReference = ReferenceProperty(Cat, collection_name = 'allImages')
imageURL = StringProperty()
答案 0 :(得分:3)
您可以使用PolyModel:
class Animal(polymodel.PolyModel):
name = db.StringProperty()
breed = db.StringProperty()
class Dog(Animal):
pass
class Cat(Animal):
pass
现在您可以拥有一个引用动物的ReferenceProperty,并允许使用Dogs或Cats。
但是,您没有任何特定于每种动物类型的属性 - 为什么不只是拥有常规动物模型,添加一个属性来指示它是什么物种,并完全跳过单独的模型?