self.AmazonCustomerReturns = Table('amazon_customer_returns', metadata, autoload=True, autoload_with=engine)
session = Session(engine)
result = session.query(self.AmazonCustomerReturns).first()
print(111,result)
result = session.query(self.AmazonCustomerReturns).filter_by(return_date='2024-01-07 00:00:00').all()
print(222, result)
result=session.query(self.AmazonCustomerReturns).filter(self.AmazonCustomerReturns.return_date>='2024-01-07 00:00:00').all()
print(333, result)
前面 2 个都没有问题,这个字段也是有的,执行到第三个的时候报错 AttributeError: 'Table' object has no attribute 'return_date' 求助大佬们瞅瞅。。
1
xuqiccr 308 天前
你这里的 self.AmazonCustomerReturn 是个表,AmazonCustomerReturns.return_date 这种用法是针对于 ORM 映射的,你改成 select([self.AmazonCustomerReturns]).where(self.AmazonCustomerReturns.c. return_date >= '2024-01-07 00:00:00')这种写法试试
|
2
xuqiccr 308 天前
我盲猜的哈,我没有用过这种写法,不对不要喷我呜呜呜
|
3
stonesirsir 308 天前 via Android
我的印象中用反射的话,最好动态将一个表提取成 orm 对象出来,这样对象才带字段属性,你这样是一个 table 对象,本来就没有 return_data 属性?之前用过,不对请指教
|
4
hahahalololo OP @xuqiccr @stonesirsir 3q ,后面找到原因了,最后一个忘记写了.c ,改成 self.AmazonCustomerReturns.c.return_date 就行了,眼神不好,一直没有注意到这个点,后面突然发现。
|