【发布时间】:2019-05-29 18:55:21
【问题描述】:
我有一个模型处方。
from datetime import timedelta
from sqlalchemy.ext.hybrid import hybrid_property
class Prescription(db.Model):
""" docstring """
ID = db.column(db.Integer, primary_key=True)
date = db.Column(db.DateTime)
duration = db.Column(db.SmallInteger)
@hybrid_property
def expiration_date(self):
# return self.date + timedelta(days=self.duration)
return self.date + timedelta(days=7)
@classmethod
def actual(cls ):
""" docstring """
today = datetime.today()
return cls.query.filter(Prescription.expiration_date>=today)
我只想在我的实际方法中获得实际处方,并且当我指定时
@hybrid_property
def expiration_date(self):
return self.date + timedelta(days=7)
一切都像魅力一样。
但每个处方都有不同的持续时间,而且我指定的时间
@hybrid_property
def expiration_date(self):
return self.date + timedelta(days=self.duration)
我有一个错误
TypeError: unsupported type for timedelta days component: InstrumentedAttribute
我试着做一个这样的小技巧
@property
def days(self):
return int(self.duration)
但没有运气。 谁能告诉一些解决方法,或者为持续时间字段创建一些惰性对象,或者以其他方式获得实际处方,通过计算的 expire_date 过滤?
【问题讨论】:
-
你用的是什么数据库?
-
PostgreSQL 和包 psycopg2-binary==2.7.7
标签: python-3.x sqlalchemy flask-sqlalchemy