这是我的模型:
class ProductCategory(Storm):
__storm_table__ = 'product_category'
pcat_no = Int(primary = True)
pcat_name = Unicode()
pitem = ReferenceSet(pcat_no, 'ProductItem.pcat_id')
catpurchase = ReferenceSet(pcat_no, 'Purchase.pcategory_id')
class ProductItem(Storm):
__storm_table__ = 'product_item'
__storm_primary__ = 'pcat_id', 'pitem_no'
pcat_id = Int()
pitem_no = Int()
pitem_name = Unicode()
pcat = Reference(pcat_id, ProductCategory.pcat_no)
purchase = ReferenceSet([pcat_id, pitem_no], [Purchase.pcategory_id, Purchase.pitem_id])
class Purchase(Storm):
__storm_table__ = 'purchase'
id = Int(primary = True)
date = Date()
pcategory_id = Int() # it must refer to pcat_no of ProductCategory & pcat_id of ProductItem
pitem_id = Int() # It must refer to pitem_no of ProductItem
pcategory = Reference(pcategory_id, ProductCategory.pcat_no)
product = Reference([pcategory_id, pitem_id], [ProductItem.pcat_id, ProductItem.pitem_no])
条件是我只想选择类别或表格中可用的类别和项目(每个都有下拉列表)。并希望引用返回到类别详细信息或类别和项目详细信息与参考集。我想列出带有 category_no 和 name 的购买记录(如果只提供 pcategory_id)或 category_no 和 name、item_no 和 name 如果同时提供了 category 和 item。& 插入符合我要求的记录。我遇到的主要问题是当我列出记录时:
print purchase_record.pcategory.pcat_name #it works fine but,
print purchase_record.product.pitem_name # it gives the error "RuntimeError: Reference used in an unknown class"
#thought 'purchase_record.pitem_id' holds some value
我正在使用烧瓶和风暴作为 ORM。有什么方法可以在表格中正确引用产品类别名称和产品项目名称?