daily/Models/DailyModel.py

27 lines
1.3 KiB
Python

from sqlalchemy import Column, String, Boolean, Enum, Text, DateTime, func, Integer, ForeignKey
from sqlalchemy.orm import relationship
from Utils.SqlAlchemyUtils import Base
from Schemas.DailySchemas import DailyTypeEnum
class Daily(Base):
__tablename__ = "daily"
id = Column(Integer, primary_key=True, comment="日报ID")
type = Column(Enum(DailyTypeEnum, values_callable=lambda x: [e.value for e in x]), nullable=False)
# fill_user = Column(String(128), comment="填报人openid")
fill_user = Column(String(128), ForeignKey('user.openid'), comment="填报人openid")
user_info = relationship('User', uselist=False, backref='user')
title = Column(String(128), comment="标题")
department = Column(Integer, comment="填报部门")
post = Column(Integer, comment="填报部门")
content = Column(Text, comment="填报内容")
daily_time = Column(DateTime, server_default=func.now(), comment='日报时间')
create_time = Column(DateTime, server_default=func.now(), comment='创建时间')
update_time = Column(DateTime, server_default=func.now(), onupdate=func.now(), comment='修改时间')
def to_dict(self):
data = {c.name: getattr(self, c.name) for c in self.__table__.columns}
user = getattr(self, 'user_info')
data['user'] = user.to_dict()
return data