urban-investment-research/Mods/EditRecord/Models.py

47 lines
2.0 KiB
Python

from sqlalchemy.orm import relationship
from Context.common import common_db
from sqlalchemy import Column, Integer, String, ForeignKey, Text, DateTime, func
from Mods.User.Models import User
class EditRecord(common_db.Base):
"""
编辑记录表
"""
__tablename__ = "edit_record"
id = Column(Integer, primary_key=True)
edit_user = Column(String(128), ForeignKey('user.email'), comment="填报人", nullable=False)
user_info = relationship('User', uselist=False, backref='user')
item_id = Column(Integer, comment="编辑项id", nullable=False)
action = Column(String(255), comment="操作")
item_type_id = Column(Integer, ForeignKey('edit_item_type.id'), comment="编辑项类型信息", nullable=False)
item_type_info = relationship('EditItemType', uselist=False, backref='edit_item_type')
before_edit_data = Column(Text, comment="编辑前的信息json")
after_edit_data = Column(Text, comment="编辑后的信息json")
edit_time = Column(DateTime, server_default=func.now(), comment='编辑时间')
create_time = Column(DateTime, server_default=func.now(), comment='创建时间')
def to_dict(self):
data = {c.name: getattr(self, c.name) for c in self.__table__.columns}
item_type_info = getattr(self, 'item_type_info')
data['item_type_info'] = item_type_info.to_dict()
user_info = getattr(self, 'user_info')
data['user_info'] = user_info.to_dict()
return data
class EditItemType(common_db.Base):
"""
编辑项信息配置表,这个表需手动配置
"""
__tablename__ = "edit_item_type"
id = Column(Integer, primary_key=True)
name = Column(String(255), comment="名称", nullable=False)
category = Column(String(255), comment="类别", nullable=False)
table_name = Column(String(255), comment="表名", nullable=False)
def to_dict(self):
data = {c.name: getattr(self, c.name) for c in self.__table__.columns}
return data