Files
Django/orders/models.py

490 lines
25 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from django.db import models
class Dingdan(models.Model):
"""订单主表"""
# 核心编号:唯一且不可为空[citation:3][citation:9]
dingdan_id = models.CharField(max_length=32, unique=True,db_index=True, verbose_name='订单ID')
# 状态与平台:用整数表示,具体含义由业务逻辑定义
zhuangtai = models.IntegerField(default=1, null=True, blank=True,db_index=True, verbose_name='订单状态')
fadan_pingtai = models.IntegerField(null=True, blank=True, verbose_name='发单平台')
# 金额相关
jine = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='订单金额')
dashou_fencheng = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='打手分成')
guanshi_fencheng = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, default=0, verbose_name='管事分成')
# 用户与商品关联ID
jiedan_dashou_id = models.CharField(max_length=32, null=True, db_index=True,blank=True, verbose_name='接单打手ID')
dashou_liuyan = models.TextField(null=True, blank=True, verbose_name='打手留言')
zhiding_id = models.CharField(max_length=32, null=True, blank=True, verbose_name='指定ID')
shangpin_id = models.IntegerField(null=True, blank=True, verbose_name='商品ID')
leixing_id = models.PositiveIntegerField(null=True, blank=True, verbose_name='商品类型ID') # 直接存数字
tupian = models.CharField(max_length=500, null=True, blank=True, verbose_name='商品图片URL')
yaoqiuleixing = models.PositiveIntegerField(null=True, blank=True, verbose_name='抢单要求类型')
huiyuan_id = models.CharField(max_length=6, null=True, blank=True, verbose_name='会员ID')
yongjin = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='佣金要求')
# 订单描述信息
jieshao = models.TextField(null=True, blank=True, verbose_name='订单介绍')
beizhu = models.TextField(null=True, blank=True, verbose_name='订单备注')
# 新增字段:游戏昵称(前端提交的游戏昵称)
nicheng = models.CharField(max_length=50, null=True, blank=True, verbose_name='游戏昵称')
user1_id = models.CharField(max_length=30,null=True, db_index=True, verbose_name='用户1标识')
user2_id = models.CharField(max_length=30, null=True,db_index=True, verbose_name='用户2打手标识')
#liaotian_pindao = models.CharField(max_length=255, blank=True, null=True, verbose_name='聊天频道名')
auto_task_id = models.CharField('延时任务ID', max_length=255, blank=True, default='')
auto_expire_at = models.DateTimeField('计划过期时间', null=True, blank=True)
pending_dispatch = models.BooleanField('待调度标记', default=False, db_index=True)
status_8_time = models.DateTimeField('状态变为8的时间', null=True, blank=True)
# 时间戳
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
clkf = models.CharField(max_length=20, null=True, db_index=True, verbose_name='处理客服')
tkly = models.CharField(max_length=500, blank=True, null=True, verbose_name='退款/拒绝理由')
wechat_transaction_id = models.CharField(
max_length=64,
blank=True,
null=True,
db_index=True,
verbose_name='微信支付订单号'
)
class Meta:
db_table = 'dingdan'
verbose_name = '订单'
verbose_name_plural = '订单'
# 为高频查询字段添加索引
indexes = [
models.Index(fields=['zhuangtai']),
models.Index(fields=['dingdan_id']),
models.Index(fields=['jiedan_dashou_id']),
models.Index(fields=['wechat_transaction_id']),
]
def __str__(self):
return self.dingdan_id
class DingdanPingtai(models.Model):
"""平台订单扩展表 (当 fadan_pingtai=1 时使用)"""
dingdan = models.OneToOneField(Dingdan, on_delete=models.CASCADE, related_name='pingtai_kuozhan', verbose_name='订单')
laoban_id = models.CharField(max_length=32, null=True, blank=True, db_index=True,verbose_name='老板ID')
laoban_pingjia = models.TextField(null=True, blank=True, verbose_name='老板评价')
jjjs_biaoshi = models.IntegerField(default=0, verbose_name='拒绝结算标记(1表示拒绝结算)')
# ========== 新增字段 ==========
pingtai_shouyi = models.DecimalField(max_digits=10,decimal_places=2,null=True,blank=True,default=0.00,verbose_name='平台收益')
dianpu_shouyi = models.DecimalField(max_digits=10,decimal_places=2, null=True,blank=True,default=0.00,verbose_name='店铺收益')
dianpu_id = models.PositiveIntegerField(null=True,blank=True,db_index=True,verbose_name='所属店铺ID')
# ---------- 上级分红快照 ----------
shangji_dianpu_id = models.PositiveIntegerField(null=True, blank=True, db_index=True,
verbose_name='该订单的上级店铺ID')
shangji_fenhong = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, default=0.00,
verbose_name='上级分红金额')
# =============================
class Meta:
db_table = 'dingdan_pingtai'
verbose_name = '平台订单扩展'
verbose_name_plural = '平台订单扩展'
indexes = [
models.Index(fields=['laoban_id']),
models.Index(fields=['dianpu_id']), # 为新字段加索引
]
def __str__(self):
return f"平台扩展-{self.dingdan.dingdan_id}"
class DingdanShangjia(models.Model):
"""商家发单扩展表 (当 fadan_pingtai=2 时使用)"""
dingdan = models.OneToOneField(Dingdan, on_delete=models.CASCADE, related_name='shangjia_kuozhan', verbose_name='订单')
shangjia_id = models.CharField(max_length=32, null=True, blank=True,db_index=True, verbose_name='商家ID')
shangjia_pingjia = models.TextField(null=True, blank=True, verbose_name='商家评价')
cfliyou = models.TextField(null=True, blank=True, verbose_name='商家处罚理由')
sqzhuangtai =models.IntegerField(default=0, null=True, blank=True, verbose_name='处罚申请状态:0待处理,1成功,2驳回')
bhliyou = models.TextField(null=True, blank=True, verbose_name='驳回商家处罚理由')
sjnicheng =models.CharField(max_length=50,null=True, verbose_name='商家昵称')
# 在 dingdan/models.py 的 DingdanShangjia 类中添加
shangyige_dingdan_id = models.CharField(
max_length=32,
null=True,
blank=True,
verbose_name='上一个订单ID'
)
class Meta:
db_table = 'dingdan_shangjia'
verbose_name = '商家订单扩展'
verbose_name_plural = '商家订单扩展'
indexes = [
models.Index(fields=['shangjia_id']),
]
def __str__(self):
return f"商家扩展-{self.dingdan.dingdan_id}"
class DingdanPeihu(models.Model):
"""陪护订单表一个订单最多2个陪护"""
# 关联订单(一对一,陪护订单依附于原订单)
dingdan_id = models.CharField(max_length=32, unique=True, db_index=True, verbose_name='订单ID')
# 主打手ID冗余方便查询必须与订单的 jiedan_dashou_id 一致)
zhudashou_id = models.CharField(max_length=32, db_index=True, verbose_name='主打手ID')
# 实际接单陪护
peihu1_id = models.CharField(max_length=32, null=True, blank=True, db_index=True, verbose_name='陪护1打手ID')
peihu2_id = models.CharField(max_length=32, null=True, blank=True, db_index=True, verbose_name='陪护2打手ID')
# 订单状态1=待抢单,2=已抢待确认,3=进行中,4=已完成,5=已取消,7=指定状态...
zhuangtai = models.IntegerField(default=1, verbose_name='陪护订单状态')
# 需求配置
peihu_xuqiu_shuliang = models.IntegerField(default=1, verbose_name='陪护需求数量')
yongjin_yaoqiu = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='抢单佣金要求')
# 等级需求关联称号ID可空表示无限制
peihu1_dengji_xuqiu = models.PositiveIntegerField(null=True, blank=True, verbose_name='陪护1等级需求(称号ID)')
peihu2_dengji_xuqiu = models.PositiveIntegerField(null=True, blank=True, verbose_name='陪护2等级需求(称号ID)')
# 处罚与分红比例(格式:"1/5" 或 "2/5"
peihu1_zhadan_danze = models.CharField(max_length=10, null=True, blank=True, verbose_name='陪护1炸单担责比例')
peihu2_zhadan_danze = models.CharField(max_length=10, null=True, blank=True, verbose_name='陪护2炸单担责比例')
peihu1_fenhong = models.CharField(max_length=10, null=True, blank=True, verbose_name='陪护1分红比例')
peihu2_fenhong = models.CharField(max_length=10, null=True, blank=True, verbose_name='陪护2分红比例')
# 指定陪护可预设打手ID可为空
zhiding_peihu1 = models.CharField(max_length=32, null=True, blank=True, verbose_name='指定陪护1 ID')
zhiding_peihu2 = models.CharField(max_length=32, null=True, blank=True, verbose_name='指定陪护2 ID')
# 时间戳
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'dingdan_peihu'
verbose_name = '陪护订单'
verbose_name_plural = verbose_name
indexes = [
models.Index(fields=['zhudashou_id']),
models.Index(fields=['peihu1_id']),
models.Index(fields=['peihu2_id']),
models.Index(fields=['zhuangtai']),
]
class Fadan(models.Model):
"""罚单表——平台各类处罚信息"""
id = models.AutoField(primary_key=True, verbose_name='自增主键')
beichufa_id = models.CharField(max_length=20, db_index=True, verbose_name='被处罚用户ID') # 直接用yonghuid后续可改为外键
shenqing_chufa = models.CharField(max_length=20, blank=True, null=True, verbose_name='申请处罚者ID')
shenfen = models.IntegerField(choices=[(1, '打手'), (2, '管事'), (3, '商家'), (4, '组长')], default=1, verbose_name='被处罚者身份')
chufaliyou = models.TextField(blank=True, null=True, verbose_name='处罚理由')
fakuanjine = models.DecimalField(max_digits=10, decimal_places=2, default=0.00, verbose_name='罚款金额')
guanliandingdan_id = models.CharField(max_length=32, blank=True, null=True, db_index=True, verbose_name='关联订单ID')
zhuangtai = models.IntegerField(choices=[(1, '待缴纳'), (2, '已缴纳'), (3, '申诉中'), (4, '已驳回')], default=1, db_index=True, verbose_name='罚单状态')
yingxiang_qiangdan = models.IntegerField(choices=[(1, '影响抢单'), (0, '不影响抢单')], default=1, db_index=True, verbose_name='是否影响抢单')
shensuliyou = models.TextField(blank=True, null=True, verbose_name='申诉理由')
tongyi_chufaliyou = models.TextField(blank=True, null=True, verbose_name='同意处罚理由')
bohuiliyou = models.TextField(blank=True, null=True, verbose_name='驳回理由')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
# 在 Fadan 模型中添加
shenqingren_shenfen = models.IntegerField(
choices=[(1, '客服'), (2, '售后'), (3, '管理员'),(4,'店铺'),(5,'商家')], # 按实际扩展
default=1,
verbose_name='申请处罚人身份'
)
chulizhe_shenfen = models.IntegerField(
choices=[(1, '客服'), (2, '售后'), (3, '管理员')],
default=2,
verbose_name='处理者身份'
)
chulizhe = models.CharField(max_length=20, blank=True, null=True, verbose_name='处理者')
# ========== 新增字段 ==========
shenqingren_fenhong_jine = models.DecimalField(
max_digits=12, decimal_places=2, default=0.00,
verbose_name='申请人分红金额'
)
class Meta:
db_table = 'fadan'
verbose_name = '罚单'
verbose_name_plural = '罚单'
indexes = [
models.Index(fields=['beichufa_id', 'yingxiang_qiangdan', 'zhuangtai'], name='fadan_qiangdan_check'),
models.Index(fields=['guanliandingdan_id'], name='fadan_dingdan_idx'),
]
def __str__(self):
return f"{self.beichufa_id} - 罚款{self.fakuanjine}元 - 状态{self.zhuangtai}"
# ==================== 罚款申诉图片表 ====================
class FadanShensuTupian(models.Model):
"""罚款申诉图片,关联罚单"""
fadan = models.ForeignKey(Fadan, on_delete=models.CASCADE, related_name='shensu_tupians', verbose_name='关联罚单')
beichufa_id = models.CharField(max_length=7, db_index=True, verbose_name='被处罚用户ID') # 冗余,便于直接按用户查
tupian_url = models.CharField(max_length=500, verbose_name='图片相对URL')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
# 在 FadanShensuTupian 模型中添加
yongtu = models.IntegerField(
choices=[(1, '处罚证据图片'), (2, '申诉图片')],
default=2,
verbose_name='图片用途'
)
class Meta:
db_table = 'fadan_shensu_tupian'
verbose_name = '罚款申诉图片'
verbose_name_plural = '罚款申诉图片'
indexes = [
models.Index(fields=['fadan_id']),
models.Index(fields=['beichufa_id']),
]
# 与 Fadan 放在同一个文件或独立的 fadan/models.py
class FadanFenhong(models.Model):
"""罚款分红表——记录罚款产生的分红信息"""
id = models.AutoField(primary_key=True, verbose_name='自增主键')
fenhongzhe_id = models.CharField(max_length=20, db_index=True, verbose_name='分红者ID')
zonge = models.DecimalField(max_digits=12, decimal_places=2, default=0.00, verbose_name='分红总额')
ketixian_fenhong = models.DecimalField(max_digits=12, decimal_places=2, default=0.00, verbose_name='可提现分红')
shenfen = models.IntegerField(choices=[(1, '商家'), (2, '客服'), (3, '平台管理者'),(4,'店铺'),(5, '售后')], default=1, verbose_name='分红者身份')
fenhong_cishu = models.IntegerField(default=0, verbose_name='分红次数')
# ✅ 新增字段:是否单独开启分红利率(若开启,则使用本记录的 yingde_lilv否则使用全局配置
is_individual_rate = models.BooleanField(default=False, verbose_name='是否单独开启分红利率')
yingde_lilv = models.DecimalField(max_digits=5, decimal_places=4, default=0.0000, verbose_name='分红应得利率')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'fadan_fenhong'
verbose_name = '罚款分红'
verbose_name_plural = '罚款分红'
indexes = [
models.Index(fields=['fenhongzhe_id'], name='fadan_fenhong_zhe_idx'),
models.Index(fields=['shenfen'], name='fadan_fenhong_sf_idx'),
]
def __str__(self):
return f"{self.fenhongzhe_id} - 分红{self.ketixian_fenhong}"
class FadanFenhongLilv(models.Model):
shenfen = models.IntegerField(primary_key=True, choices=[(1, '客服'), (2, '售后'), (3, '管理员'), (4, '店铺'), (5, '商家')], verbose_name='申请处罚人身份')
lilv = models.DecimalField(max_digits=5, decimal_places=4, default=0.0000, verbose_name='分红费率')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'fadan_fenhong_lilv'
verbose_name = '罚款分红费率配置'
verbose_name_plural = verbose_name
def __str__(self):
return f"身份{self.shenfen} - 费率{self.lilv}"
class OrderDashouHistory(models.Model):
"""
订单打手变更历史表
记录订单每次更换打手的操作
"""
dingdan_id = models.CharField(max_length=32, db_index=True, verbose_name='订单ID')
dashou_id = models.CharField(max_length=7, db_index=True, verbose_name='打手ID')
times = models.PositiveSmallIntegerField(verbose_name='第几次接单从1开始')
operator = models.CharField(max_length=11, verbose_name='操作客服ID')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
class Meta:
db_table = 'order_dashou_history'
verbose_name = '订单打手变更历史'
verbose_name_plural = '订单打手变更历史'
indexes = [
models.Index(fields=['dingdan_id']),
models.Index(fields=['dashou_id']),
]
def __str__(self):
return f"{self.dingdan_id} -> {self.dashou_id}{self.times}"
class Dashoutupian(models.Model):
dingdan_id = models.CharField(max_length=32,db_index=True, null=True, verbose_name='订单ID')
dashou = models.CharField(max_length=32, null=True, blank=True,db_index=True, verbose_name='接单打手ID')
tupian = models.CharField(max_length=500, null=True, blank=True, verbose_name='打手提交图片URL')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'dashoutupian'
indexes = [
models.Index(fields=['dashou']),
models.Index(fields=['dingdan_id']),
]
class Pingfen(models.Model):
dashou = models.CharField(max_length=32, null=True, blank=True, db_index=True,verbose_name='接单打手ID')
zongfen = models.PositiveIntegerField(default=0, verbose_name='总分')
cishu = models.PositiveIntegerField(default=0, verbose_name='评分次数')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'pingfenbiao'
verbose_name = '评分表'
indexes = [
models.Index(fields=['dashou']),
]
def __str__(self):
return f"{self.dashou} - 平均分: {self.pingjun_fen():.2f}"
def pingjun_fen(self):
"""计算平均分"""
if self.cishu > 0:
return float(self.zongfen) / self.cishu
return 0.0
class Lilubiao(models.Model):
lilu = models.DecimalField(max_digits=5, decimal_places=4,null=True, verbose_name='平台分成利率1是平台,2是商家')
#sahngjialilu = models.DecimalField(max_digits=5, decimal_places=4,null=True, verbose_name='商家利率')
fadanpingtai = models.CharField(max_length=10,null=True,verbose_name='订单所属平台,(商家或平台)')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'lilubiao'
class Chufajilu(models.Model):
dashouid = models.CharField(max_length=7, null=True, db_index=True, verbose_name='被罚打手ID')
qingqiuid = models.CharField(max_length=11, null=True, db_index=True, verbose_name='请求处罚ID')
chuliid = models.CharField(max_length=11, null=True, db_index=True, verbose_name='处理处罚ID')
cfliyou = models.TextField(null=True, blank=True, verbose_name='处罚理由')
ssliyou = models.TextField(null=True, blank=True, verbose_name='打手申诉理由')
sqzhuangtai = models.IntegerField(default=0, null=True, blank=True, verbose_name='处罚申请状态:0待处理,1成功,2驳回')
bhliyou = models.TextField(null=True, blank=True, verbose_name='驳回处罚理由')
jifen = models.IntegerField(default=0, verbose_name='扣除打手积分')
dingdan_id = models.CharField(max_length=32, null=True, db_index=True, verbose_name='订单ID')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'chufajilu'
indexes = [
models.Index(fields=['dashouid']),
models.Index(fields=['qingqiuid']),
models.Index(fields=['chuliid']),
models.Index(fields=['dingdan_id']),
]
class Chufatupian(models.Model):
dingdan_id = models.CharField(max_length=32,db_index=True, null=True, verbose_name='订单ID')
yonghuid = models.CharField(max_length=32, null=True, blank=True,db_index=True, verbose_name='用户ID')
tupian = models.CharField(max_length=500, null=True, blank=True, verbose_name='证据图片URL')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'chufatupian'
indexes = [
models.Index(fields=['yonghuid']),
models.Index(fields=['dingdan_id']),
]
class Tuikuanjilu(models.Model):
dingdan_id = models.CharField(max_length=32, unique=True, verbose_name='订单ID')
dashouid = models.CharField(max_length=7, null=True, verbose_name='接单打手ID')
qingqiuid = models.CharField(max_length=7, null=True, verbose_name='请求用户ID')
chuliid = models.CharField(max_length=11, null=True, db_index=True, verbose_name='处理人ID')
liyou = models.TextField(null=True, blank=True, verbose_name='理由')
sqzhuangtai = models.IntegerField(default=0, null=True, blank=True,db_index=True, verbose_name='申请状态:0待处理,1成功,2驳回')
bhliyou = models.TextField(null=True, blank=True, verbose_name='驳回理由')
jine = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='订单金额')
dashou_fencheng = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='打手分成')
jieshao = models.TextField(null=True, blank=True, verbose_name='订单介绍')
beizhu = models.TextField(null=True, blank=True, verbose_name='订单备注')
# 新增字段:游戏昵称(前端提交的游戏昵称)
nicheng = models.CharField(max_length=50, null=True, blank=True, verbose_name='游戏昵称')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'tuikuanjilu'
indexes = [
models.Index(fields=['chuliid']),
models.Index(fields=['sqzhuangtai']),
]
class Ptliushui(models.Model):
zonge = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='收取总金额')
zhichuzonge = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='支出总金额')
zongshouyi = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='总收益')
rizonge = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='日收取')
rizhichu = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='日支出')
rishouyi = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='日收益')
zongshoucishu = models.IntegerField(default=0, verbose_name='总收取次数')
rishoucishu = models.IntegerField(default=0, verbose_name='日收取次数')
zongzhichucishu = models.IntegerField(default=0, verbose_name='总支出次数')
rizhichucishu = models.IntegerField(default=0, verbose_name='日支出次数')
class Meta:
db_table = 'ptliushui'
class Liaotian(models.Model):
"""聊天关系表 - 极简设计,不设置唯一约束"""
# 主键
id = models.BigAutoField(primary_key=True, verbose_name='主键ID')
# 聊天双方的用户标识GoEasy的user_id
user1_id = models.CharField(max_length=30, db_index=True, verbose_name='用户1标识')
user2_id = models.CharField(max_length=30, db_index=True, verbose_name='用户2标识')
# 关联的订单(可以为空,但实际业务中应该关联)
dingdan_id = models.CharField(max_length=32, unique=True, verbose_name='订单ID')
# 状态与平台:用整数表示,具体含义由业务逻辑定义
zhuangtai = models.IntegerField(default=1,db_index=True,choices=[(1, '开启中'), (0, '已关闭')],verbose_name='聊天状态')
# 时间戳
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'liaotian'
indexes = [
models.Index(fields=['user1_id']),
models.Index(fields=['user2_id']),
models.Index(fields=['zhuangtai']),
]
def __str__(self):
return f'{self.user1_id}{self.user2_id} ({self.zhuangtai})'