我想使用SQLAlchemy的@aggregated裝飾器爲類Receipt定義屬性('gross_amount)'。該gross_amount
屬性是所有與Receipt
實例關聯的Item
實例的Item.gross_amount
與外部ID的總和。如何正確使用SQLAlchemy的'@aggregated'類屬性修飾器
I.E.,收據由物品組成,我想定義收據的'gross_amount'值,它只是收據上所有物品的總金額。
我模仿我的代碼,這個文件http://sqlalchemy-utils.readthedocs.io/en/latest/aggregates.html
所以它看起來像這樣...之後
from sqlalchemy import Column, Integer, ForeignKey
from sqlalchemy.sql import func
from sqlalchemy import orm
class Receipt(Base):
__tablename__ = "receipts"
__table_args__ = {'extend_existing': True}
id = Column(Integer, index = True, primary_key = True, nullable = False)
@aggregated('itemz', Column(Integer))
def gross_amount(self):
return func.sum(Item.gross_amount)
itemz = orm.relationship(
'Item',
backref='receipts'
)
class Item(Base):
__tablename__ = "items"
id = Column(Integer, index = True, primary_key = True, nullable = False)
'''
FE relevant
'''
gross_amount = Column(Integer)
receipt_id = Column(Integer, ForeignKey("receipts.id"), nullable=False)
在我的移民,我應該有在receipts
表中的列gross_amount
? 1)當我在receipts
表中定義此列時,任何Receipt.gross_amount
對於任何實例都只是指向receipts
表中定義的gross_amount值。 2)當我沒有定義在receipts
表本專欄中,我得到一個SQLAlchemy的錯誤,每當我執行SELECT
對數據庫:
ProgrammingError: (psycopg2.ProgrammingError) column receipts.gross_amount does not exist
FWIW,我SQLAlchemy
軟件包分發直通PIP最新的。 ..
SQLAlchemy==1.1.11
SQLAlchemy-Utils==0.32.14
我的本地數據庫上我跑這現在是PostgreSQL 9.6.2
上午什麼我在這裏做錯了嗎?任何病人的幫助將不勝感激!
這不提供問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/18633934) – thewaywewere