class Order(BaseModel, db.Model): __tablename__ = 'ihome_order' id = db.Column(db.Integer, primary_key=True) # 外键关联用户, 一个用户对应多个订单 user_id = db.Column(db.Integer, db.ForeignKey('ihome_user.id'), nullable=False) # 一个房子对应多个订单 house_id = db.Column(db.Integer, db.ForeignKey('ihome_house.id'), nullable=False) # 订单的创建时间 begin_date = db.Column(db.DateTime, nullable=False) # 订单的结束时间 end_date = db.Column(db.DateTime, nullable=False) # 订单生效的天数 days = db.Column(db.Integer, nullable=False) # 房间的价格 house_price = db.Column(db.Integer, nullable=False) # 房间的数量 amount = db.Column(db.Integer, nullable=False) # 订单的状态,使用了枚举法, index 等于 true 意思是 默认开启了下标索引, WAIT_ACCEPT相当于0, 可以使用时可以用0代替 status = db.Column( db.Enum( # 待接单 'WAIT_ACCEPT', # 待支付 'WAIT_PAYMENT', # 已支付 'PAID', # 待评价 'WAIT_COMMENT', # 已完成 'COMPLETE', # 已取消 'CANCELED', # 已拒单 'REJECTED'), default='WAIT_ACCEPT', index=True) # 订单评价 comment = db.Column(db.Text) # 把订单对象初始化如下的字典形式 def to_dict(self): return { 'order_id': self.id, 'house_title': self.house.title, 'image': self.house.index_image_url if self.house.index_image_url else '', 'create_date': self.create_time.strftime('%Y-%m-%d'), 'begin_date': self.begin_date.strftime('%Y-%m-%d'), 'end_date': self.end_date.strftime('%Y-%m-%d'), 'amount': self.amount, 'days': self.days, 'status': self.status, 'comment': self.comment }
class House(BaseModel,db.Model): # 房屋信息 __tablename__ = "ihome_house" id = db.Column(db.Integer,primary_key=True) # 房屋编号 # 房屋主人的用户编号 user_id = db.Column(db.Integer,db.ForeignKey("ihome_user.id"),nullable=False) # 归属地的区域编号 area_id = db.Column(db.Integer,db.ForeignKey("ihome_area.id"),nullable=False) title = db.Column(db.String(64),nullable=False) # 标题 price = db.Column(db.Integer,default=0) # 单价,单位:分 address = db.Column(db.String(512),default="") # 地址 room_count = db.Column(db.Integer,default=1) # 房间数目 acreage = db.Column(db.Integer,default=0) # 房屋面积 unit = db.Column(db.String(32),default="") # 房屋单元,如几室几厅 capacity = db.Column(db.Integer,default=1) # 房屋容纳的人数 beds = db.Column(db.String(64),default="") # 房屋床铺的配置 deposit = db.Column(db.Integer,default=0) # 房屋押金 min_days = db.Column(db.Integer,default=1) # 最少入住天数 max_days = db.Column(db.Integer,default=0) # 最多入住天数,0表示不限制 order_count = db.Column(db.Integer,default=0) # 预定完成的该房屋的订单数 index_image_url = db.Column(db.String(256),default="") # 房屋主图片的路径 # 房屋的设施 facilities = db.relationship("Facility",secondary=ihome_house_facility) images = db.relationship("HouseImage") # 房屋的图片 orders = db.relationship('Order',backref="house") def to_dict(self): return { 'id':self.id, 'title':self.title, 'image':self.index_image_url if self.index_image_url else '', 'area':self.area.name, 'price':self.price, 'create_time':self.create_time.strftime('%Y-%m-%d %H:%M:%S'), 'room':self.room_count, 'order_count':self.order_count, 'address':self.address } def to_full_dict(self): return { 'id': self.id, 'user_avatar':self.user.avatar if self.user.avatar else '', 'user_name':self.user.name, 'title': self.title, 'price': self.price, 'address': self.area.name + self.address, 'room_count': self.room_count, 'acreage':self.acreage, 'unit':self.unit, 'capacity':self.capacity, 'beds':self.beds, 'deposit':self.deposit, 'min_days':self.min_days, 'max_days':self.max_days, 'order_count': self.order_count, 'image': [image.url for image in self.images], 'facilities':[facility.to_dict() for facility in self.facilities] }
class CustomerShippingAddress(BaseModel, db.Model): __tablename__ = 'customer_shipping_address' id = db.Column(db.INTEGER, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer, db.ForeignKey("customer.id"), nullable=False) # 客户编号 area_id = db.Column(db.Integer, db.ForeignKey("citys.id")) # 归属地编号 name = db.Column(db.String(50)) # 收件人姓名 tel = db.Column(db.String(50)) # 联系电话 about_address = db.Column(db.String(255)) # 地址详情 disabled = db.Column(db.Boolean, default=False) # 是否默认地址
class Publish(db.Model): __tablename__ = 'publish' id = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True) database_name = db.Column(db.VARCHAR(length=255)) # 数据库名 (单例发布,数据库名必须填写) id_types = db.Column( db.VARCHAR(length=100), nullable=False) # 栏目id id_types (栏目id,允许多个id,每个id用英文逗号分隔) data_file_path = db.Column( db.VARCHAR(length=255)) # 栏目发布文件数据目录 data_file_path (火车头采集的txt地址) data_url_path = db.Column(db.VARCHAR()) # 栏目发布url地址 data_url_path (数据接口地址) arc_number_min = db.Column(db.Integer) # 栏目文章发布最少多少篇 arc_number_max = db.Column(db.Integer) # 栏目文章发布最多多少篇 is_keywords = db.Column(db.Integer) # 是否启用关键词替换 is_filter = db.Column(db.Integer) # 是否启用过滤功能(需过滤的词从过滤表中拉取) is_resolve = db.Column(db.Integer) # 是否启用分词功能 is_type_top = db.Column(db.Integer) # 是否发布顶级栏目 is_index_page = db.Column(db.Integer) # 是否生存静态首页 is_type_page = db.Column(db.Integer) # 是否生成栏目页 is_page_all = db.Column(db.Integer) # 是否生存所有文章静态页 is_page_curent = db.Column(db.Integer) # 是否生成本次发布的文章的静态页 server_id = db.Column(db.Integer, db.ForeignKey('servers.id')) def __repr__(self): return '<Publish id: %s>' % self.id
class GoodsImage(BaseModel, db.Model): """商品图片""" __tablename__ = "goods_image" id = db.Column(db.Integer, primary_key=True) goods_id = db.Column(db.Integer, db.ForeignKey("goods.id"), nullable=False) # 商品id url = db.Column(db.String(255), nullable=False) # 图片的路径
class HouseImage(BaseModel,db.Model): # 房屋图片 __tablename__ = "ihome_house_image" id = db.Column(db.Integer,primary_key=True) # 房屋编号 house_id = db.Column(db.Integer,db.ForeignKey('ihome_house.id'),nullable=True) url = db.Column(db.String(256),nullable=False) # 图片的路径
class Order(BaseModel, db.Model): ''' ''' __tablename__ = 'ihome_order' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('ihome_user.id'), nullable=False) house_id = db.Column(db.Integer, db.ForeignKey('ihome_house.id'), nullable=False) begin_date = db.Column(db.DateTime, nullable=False) end_date = db.Column(db.DateTime, nullable=False) days = db.Column(db.Integer, nullable=False) house_price = db.Column(db.Integer, nullable=False) amount = db.Column(db.Integer, nullable=False) status = db.Column( db.Enum( 'WAIT_ACCEPT', # 待接单 'WAIT_PAYMENT', # 待支付 'PAID', # 已支付 'WAIT_COMMENT', # 待评价 'COMPLETE', # 已完成 'CANCELED', # 已取消 'REJECTED' # 已拒单 ), default='WAIT_ACCEPT', index=True) comment = db.Column(db.Text) def to_dict(self): return { 'order_id': self.id, 'house_title': self.house.title, 'image': self.house.index_image_url if self.house.index_image_url else '', 'create_date': self.create_time.strftime('%Y-%m-%d'), 'begin_date': self.begin_date.strftime('%Y-%m-%d'), 'end_date': self.end_date.strftime('%Y-%m-%d'), 'amount': self.amount, 'days': self.days, 'status': self.status, 'comment': self.comment }
class Order(BaseModel, db.Model): __tablename__ = "ihome_order" id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey("ihome_user.id"), nullable=False) house_id = db.Column(db.Integer, db.ForeignKey('ihome_house.id'), nullable=False) begin_date = db.Column(db.DATETIME, nullable=False) end_date = db.Column(db.DATETIME, nullable=False) days = db.Column(db.Integer, nullable=False) house_price = db.Column(db.Integer, nullable=False) amount = db.Column(db.Integer, nullable=False) # 总的价格 status = db.Column( db.Enum( "WAIT_ACCEPT", # 待接单 "WAIT_PAYMENT", # 代付款 "PAID", # 已支付 "WAIT_COMMENT", # 待评价 "COMPLETE", # 已完成 "CANCELED", # 已取消 "REJECTED" # 已拒单 ), default="WAIT_ACCEPT", index=True) comment = db.Column(db.Text) def to_dict(self): return { 'order_id': self.id, 'house_title': self.house.title, 'image': self.house.index_image_url if self.house.index_image_url else "", 'create_date': self.create_time.strftime('%Y-%m-%d'), 'begin_date': self.begin_date.strftime('%Y-%m-%d'), 'end_date': self.end_date.strftime('%Y-%m-%d'), 'amount': self.amount, 'days': self.days, 'status': self.status, 'comment': self.comment }
class HouseImage(BaseModel, db.Model): """房屋图片""" __tablename__ = 'ihome_house_image' id = db.Column(db.Integer, primary_key=True) # 房屋编号 house_id = db.Column(db.Integer, db.ForeignKey("ihome_house.id"), nullable=False) url = db.Column(db.String(256), nullable=False)
class HouseImage(BaseModel, db.Model): __tablename__ = 'ihome_house_image' id = db.Column(db.Integer, primary_key=True) # 外键关联房间的id house_id = db.Column(db.Integer, db.ForeignKey('ihome_house.id'), nullable=False) # 图片 url = db.Column(db.String(256), nullable=False)
class GoodsComments(BaseModel, db.Model): '''商品评价表''' __tablename__ = "goods_comments" id = db.Column(db.INTEGER, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer, db.ForeignKey("customer.id")) # 客户id # order_status = db.Column(db.String(255), db.ForeignKey("order.status")) # 订单状态 evaluate = db.Column(db.String(255)) # 评价 reply_id = db.Column(db.Integer, nullable=True) # 回复id Order = db.relationship("Order", secondary=goodscomments_goods_order) Goods = db.relationship("Goods", secondary=goodscomments_goods_order)
class Order(BaseModel, db.Model): # 订单 __tablename__ = "order" id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey("customer.id"), nullable=False) # 客户id goods_id = db.Column(db.Integer, db.ForeignKey("goods.id"), nullable=False) # 商品id goods_price = db.Column(db.Integer, nullable=False) # 商品价格 amount = db.Column(db.Integer, nullable=False) # 总价格 note = db.Column(db.String(200), nullable=True) # 备注 status = db.Column(db.Enum(*ORDER_ENUM.keys()), default="WAIT_ACCEPT", index=True) comment = db.Column(db.Text) # 评论 Goods = db.relationship("Goods", secondary=goodscomments_goods_order) GoodsComments = db.relationship("GoodsComments", secondary=goodscomments_goods_order)
class PublishLog(db.Model): __tablename__ = 'publish_log' id = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True) logger_date = db.Column(db.DateTime, nullable=False) logger_success = db.Column(db.Text) logger_error = db.Column(db.Text) server_id = db.Column(db.Integer, db.ForeignKey('servers.id')) def __repr__(self): return '<Logger id: %s date: %s>' % (self.id, self.logger_date)
class HouseImage(BaseModel, db.Model): """房屋图片""" __tablename__ = 'ihome_house_image' id = db.Column(db.INTEGER, primary_key=True) # 房屋编号 house_id = db.Column(db.INTEGER, db.ForeignKey('ihome_house.id'), nullable=False) url = db.Column(db.String(256), nullable=False) # 图片路径 def to_dict(self): return {'house_': self.house_id, 'url': self.url}
class Student(db.Model): # 学生模型 s_id = db.Column(db.INTEGER, primary_key=True, autoincrement=True) # id 整型 主键 自增 s_name = db.Column(db.String(20), unique=True) # 姓名 字符串 不重复 s_age = db.Column(db.INTEGER, default=10) # 年龄 整型 默认10 # 外键虽然不能像Django中的那样直接使用,但是不可或缺,否则会出现如下错误 # NoForeignKeysError: Could not determine join condition between parent/child tables on relationship Grade.students # - there are no foreign keys linking these tables. Ensure that referencing columns are associated with a ForeignKey # or ForeignKeyConstraint, or specify a 'primaryjoin' expression. # 加unique=True 即为OneToOne s_g = db.Column(db.Integer, db.ForeignKey("grade.g_id"), nullable=True) __tablename__ = "student" def __init__(self, name, age): # 初始化函数 self.s_name = name self.s_age = age
class Domain(db.Model): __tablename__ = 'domain' id = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True) domain_name = db.Column(db.VARCHAR(length=255)) update_counter = db.Column(db.Integer, nullable=False, default=5) category_id = db.Column(db.Integer, nullable=False) category_path = db.Column(db.VARCHAR(length=255), nullable=False) update_type = db.Column(db.Integer, default=0) # 0 服务器更新 1 单个站点更新 server_id = db.Column(db.Integer, db.ForeignKey('servers.id')) def __repr__(self): return '<Domain %s cid:%s cpath:%s>' % ( self.domain_name, self.category_id, self.category_path)
# 校验密码 def check_pwd(self,pwd): return check_password_hash(self.pwd_hash,pwd) def to_basic_dict(self): # 将当前的self对象序列化 return { 'id':self.id, 'avatar':self.avatar if self.avatar else '', 'name':self.name, 'phone':self.phone, } ihome_house_facility = db.Table( "ihome_house_facility", db.Column("house_id",db.Integer,db.ForeignKey("ihome_house.id"),primary_key=True), # 关联房源 db.Column("facility_id",db.Integer,db.ForeignKey("ihome_facility.id"),primary_key=True) # 关联设施 ) class House(BaseModel,db.Model): # 房屋信息 __tablename__ = "ihome_house" id = db.Column(db.Integer,primary_key=True) # 房屋编号 # 房屋主人的用户编号 user_id = db.Column(db.Integer,db.ForeignKey("ihome_user.id"),nullable=False) # 归属地的区域编号 area_id = db.Column(db.Integer,db.ForeignKey("ihome_area.id"),nullable=False) title = db.Column(db.String(64),nullable=False) # 标题 price = db.Column(db.Integer,default=0) # 单价,单位:分 address = db.Column(db.String(512),default="") # 地址
return check_password_hash(self.pwd_hash, pwd) def to_basic_dict(self): return { 'id': self.id, 'avatar': self.avatar, 'name': self.name, 'phone': self.phone } ihome_house_facility = db.Table( 'ihome_houst_facility', db.Column('house_id', db.INTEGER, db.ForeignKey('ihome_house.id'), primary_key=True), db.Column('facility_id', db.INTEGER, db.ForeignKey('ihome_facility.id'), primary_key=True)) class House(BaseModel, db.Model): """房屋信息""" __tablename__ = 'ihome_house' id = db.Column(db.INTEGER, primary_key=True) # 房屋编号牌 # 房屋主人的用户编号 user_id = db.Column(db.INTEGER,
def to_basic_dict(self): return { 'id': self.id, 'avatar': self.avatar if self.avatar else '', 'name': self.name, 'phone': self.phone } ihome_house_facility = db.Table( "ihome_house_facility", db.Column("house_id", db.Integer, db.ForeignKey("ihome_house.id"), primary_key=True), db.Column("facility_id", db.Integer, db.ForeignKey("ihome_facility.id"), primary_key=True)) class House(BaseModel, db.Model): """房屋信息""" __tablename__ = "ihome_house" id = db.Column(db.Integer, primary_key=True) # 房屋编号 # 房屋主人的用户编号 user_id = db.Column(db.Integer,
class House(BaseModel, db.Model): """房屋信息""" __tablename__ = 'ihome_house' id = db.Column(db.Integer, primary_key=True) # 房屋编号 # 房主用户id user_id = db.Column(db.Integer, db.ForeignKey('ihome_user.id'), nullable=False) # 归属地的区域编号 area_id = db.Column(db.Integer, db.ForeignKey('ihome_area.id'), nullable=False) title = db.Column(db.String(64), nullable=False) price = db.Column(db.Integer, default=0) address = db.Column(db.String(512), default='') room_count = db.Column(db.Integer, default=1) acreage = db.Column(db.Integer, default=0) # 房屋面积 unit = db.Column(db.String(32), default='') # 户型 capacity = db.Column(db.Integer, default=1) # 可居住人数 beds = db.Column(db.String(64), default='') # 床铺配置 deposit = db.Column(db.Integer, default=0) # 押金 min_days = db.Column(db.Integer, default=1) # 最小入住天数 max_days = db.Column(db.Integer, default=0) # 最大入住天数,0表示不限制 order_count = db.Column(db.Integer, default=0) # 预定完成的该房屋的订单数 index_image_url = db.Column(db.String(256), default='') # 房间主图片的路径 # 房屋的设施 facilities = db.relationship('Facility', secondary=ihome_house_facility) images = db.relationship('HouseImage') # 房屋的图片 orders = db.relationship('Order', backref='house') def to_dict(self): return { 'id': self.id, 'title': self.title, 'image': self.index_image_url if self.index_image_url else '', 'area': self.area.name, 'price': self.price, 'create_time': self.create_time.strftime('%Y-%m-%d %H:%M:%S'), 'room': self.room_count, 'order_count': self.order_count, 'address': self.address } def to_full_dict(self): return { 'id': self.id, 'user_avatar': self.user.avatar if self.user.avatar else '', 'user_name': self.user.name, 'title': self.title, 'image': self.index_image_url if self.index_image_url else '', 'price': self.price, 'create_time': self.create_time.strftime('%Y-%m-%d %H:%M:%S'), 'room_count': self.room_count, 'order_count': self.order_count, 'address': self.area.name + self.address, 'acreage': self.acreage, 'unit': self.unit, 'capacity': self.capacity, 'beds': self.beds, 'deposit': self.deposit, 'min_days': self.min_days, 'max_days': self.max_days, 'images': [image.url for image in self.images], 'facilities': [facility.to_dict() for facility in self.facilities], }
def __init__(self, name, age): # 初始化函数 self.s_name = name self.s_age = age sc = db.Table( # 定义中间表 'sc', # 外键中的内容一定是“关联表名.主键”,如果不是关联表名,则会出现如下错误 # NoForeignKeysError: Could not determine join condition between parent/child tables on relationship Course.students # - there are no foreign keys linking these tables via secondary table 'sc'. # Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, # or specify 'primaryjoin' and 'secondaryjoin' expressions. db.Column('s_id', db.Integer, db.ForeignKey("student.s_id"), primary_key=True), db.Column('c_id', db.Integer, db.ForeignKey('course.c_id'), primary_key=True)) class Course(db.Model): c_id = db.Column(db.Integer, primary_key=True, autoincrement=True) c_name = db.Column(db.String(10), unique=True) students = db.relationship( 'Student', # 关联模块 secondary=sc, # 中间表名称 backref='cou' # 反向身份引用,学生实例.cou --> 对应的课程信息 )
ORDER_CODE = { 'WAIT_ACCEPT': '1', 'WAIT_PAYMENT': '2', 'PAID': '3', 'WAIT_COMMENT': '4', 'COMPLETE': '5', 'CANCELED': '6', 'REJECTED': '0' } goodscomments_goods_order = db.Table( "goodscomments_goods_order", db.Column('goods_id', db.Integer, db.ForeignKey("goods.id"), primary_key=True), # 商品id db.Column('order_id', db.Integer, db.ForeignKey("order.id"), primary_key=True), # 订单id # db.Column('comments_id', db.Integer, db.ForeignKey("GoodsComments.id"), primary_key=True), # 订单id ) # inventory_goods_order = db.Table( # "inventory_goods_order", # db.Column('goods_id', db.Integer, db.ForeignKey("goods.id"), primary_key=True), # 商品id # db.Column('order_id', db.Integer, db.ForeignKey("order.id"), primary_key=True), # 订单id # db.Column('inventory_id', db.Integer, db.ForeignKey("Inventory.id"), primary_key=True), # 订单id # ) goods_goodsclassification = db.Table(
class House(BaseModel, db.Model): __tablename__ = 'ihome_house' # 房间的id id = db.Column(db.Integer, primary_key=True) # 该房间用户的id,外键关联用户的 id user_id = db.Column(db.Integer, db.ForeignKey('ihome_user.id'), nullable=False) # 该房间所在区域的id, 外键关联房间所在区域的 id area_id = db.Column(db.Integer, db.ForeignKey('ihome_area.id'), nullable=False) # 该房间的标题 title = db.Column(db.String(64), nullable=False) # 该房间的价格 price = db.Column(db.Integer, default=0) # 该房间所在的详细地址 address = db.Column(db.String(512), default="") # 房间的数量 room_count = db.Column(db.Integer, default=1) # 该房间的面积 acreage = db.Column(db.Integer, default=0) # 房间类型.几室几厅 unit = db.Column(db.String(32), default="") # 房间的容量,可以容纳几人 capacity = db.Column(db.Integer, default=1) # 房间的床的信息 beds = db.Column(db.String(64), default="") # 需要交纳的押金 deposit = db.Column(db.Integer, default=0) # 最少入住的天数 min_days = db.Column(db.Integer, default=0) # 最多入住的天数 max_days = db.Column(db.Integer, default=0) order_count = db.Column(db.Integer, default=0) index_image_url = db.Column(db.String(256), default="") # 房间的设施,与设施是多对多关系 facilities = db.relationship('Facility', secondary=ihome_house_facility) # 房间的图片, 与房间是一对多关系 images = db.relationship('HouseImage') # 订单 orders = db.relationship('Order', backref='house') def to_dict(self): return { 'id': self.id, 'title': self.title, 'image': self.index_image_url if self.index_image_url else '', 'area': self.area.name, 'price': self.price, 'create_time': self.create_time.strftime('%Y-%m-%d %H:%M:%S'), 'room': self.room_count, 'order_count': self.order_count, 'address': self.address } def to_full_dict(self): return { 'id': self.id, 'user_avatar': self.user.avatar if self.user.avatar else '', 'user_name': self.user.name, 'title': self.title, 'price': self.price, 'address': self.area.name + self.address, 'room_count': self.room_count, 'acreage': self.acreage, 'unit': self.unit, 'capacity': self.capacity, 'beds': self.beds, 'deposit': self.deposit, 'min_days': self.min_days, 'max_days': self.max_days, 'order_count': self.order_count, 'images': [image.url for image in self.images], 'facilities': [facility.to_dict() for facility in self.facilities], }
class House(BaseModel, db.Model): __tablename__ = 'ihome_house' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('ihome_user.id'), nullable=False) area_id = db.Column(db.Integer, db.ForeignKey('ihome_area.id'), nullable=False) title = db.Column(db.String(64), nullable=False) # 标题 price = db.Column(db.Integer, default=0) # 房间单价 address = db.Column(db.String(512), default='') # 房间地址 room_count = db.Column(db.Integer, default=1) # 房间数目 acreage = db.Column(db.Integer, default=0) # 房屋面积 unit = db.Column(db.String(32), default='') # 房屋套型 几室几厅 capacity = db.Column(db.Integer, default=1) # 房屋容纳人数 beds = db.Column(db.String(64), default='') # 床铺配置 deposit = db.Column(db.Integer, default=0) # 押金 min_days = db.Column(db.Integer, default=1) # 最少入住天数 max_days = db.Column(db.Integer, default=0) # 最多入住天数 0表示不限制 order_count = db.Column(db.Integer, default=0) # 预定完成的房屋数量 index_image_url = db.Column(db.String(256), default='') # 房屋主图片的路径 facilities = db.relationship('Facility', secondary=ihome_house_facility) images = db.relationship('HouseImage') orders = db.relationship('Order', backref='house') def to_dict(self): return { 'id': self.id, 'title': self.title, 'image': self.index_image_url if self.index_image_url else '', 'area': self.area.name, 'price': self.price, 'create_time': self.create_time, 'room': self.room_count, 'order_count': self.order_count, 'address': self.address } def to_fill_dict(self): return { 'id': self.id, 'user_avatar': self.user.avatar if self.user.avatar else '', 'user_name': self.user.name, 'title': self.title, 'price': self.price, 'address': self.area.name + self.address, 'room_count': self.room_count, 'acreage': self.acreage, 'unit': self.unit, 'capacity': self.capacity, 'beds': self.beds, 'deposit': self.deposit, 'min_days': self.min_days, 'max_days': self.max_days, 'order_count': self.order_count, 'images': [image.url for image in self.images], 'facilities': [facility.to_dict() for facility in self.facilities], }