2025-03-18 08:46:50 +08:00

59 lines
3.1 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
from utils.models import CoreModel,BaseModel
from mysystem.models import Users
# Create your models here.
# ================================================= #
# ************** 用户消息 model************** #
# ================================================= #
#消息模板
class MyMessageTemplate(CoreModel):
code = models.CharField(max_length=100,unique=True, verbose_name="模板code")
title = models.CharField(max_length=100, verbose_name="消息标题")
content = models.TextField(verbose_name="消息模板内容")
class Meta:
db_table = 'tb_message_template'
verbose_name = '消息模板'
verbose_name_plural = verbose_name
def __str__(self):
return self.title
#消息表
class MyMessage(CoreModel):
msg_chanel = models.SmallIntegerField(choices=((1, u'系统通知'), (2, u'平台公告')), verbose_name="消息渠道", default=1)
target_type = models.SmallIntegerField(choices=((1, u'平台公告'), (2, u'按用户')), default=0, verbose_name="目标类型",
help_text="目标类型")
target_user = models.ManyToManyField(to=Users, related_name='msgtargetuser', through='MyMessageUser',
through_fields=('messageid', 'revuserid'), blank=True, verbose_name="目标用户",
help_text="目标用户")
public = models.BooleanField(default=False, verbose_name="是否公开") # 1是0不是默认不是 public表示全部可见
msg_title = models.CharField(max_length=100, verbose_name="消息标题", null=True, blank=True)
msg_content = models.TextField(verbose_name="消息内容", null=True, blank=True)
to_path = models.CharField(max_length=256, verbose_name="跳转路径", null=True, blank=True, )
status = models.BooleanField(default=True, verbose_name="是否发布")
class Meta:
db_table = 'tb_message'
verbose_name = '消息中心'
verbose_name_plural = verbose_name
def __str__(self):
return f"{self.msg_title}"
#附表用于用户的操作获取行为
class MyMessageUser(BaseModel):
messageid = models.ForeignKey(MyMessage, verbose_name="消息ID", on_delete=models.CASCADE, db_constraint=False)
senduserid = models.ForeignKey(Users, verbose_name="发送者用户", on_delete=models.CASCADE,related_name='messagesenduserid', null=True, blank=True, db_constraint=False)
revuserid = models.ForeignKey(Users, verbose_name="接收者用户", on_delete=models.CASCADE,related_name='messagerevuserid', db_constraint=False)
read_at = models.DateTimeField(verbose_name='读取时间', null=True, blank=True)
is_delete = models.BooleanField(default=False, verbose_name="是否删除") # 0不删除1删除
is_read = models.BooleanField(default=False, verbose_name="是否已读") # 0没读1已读
class Meta:
db_table = 'tb_message_user'
verbose_name = '用户消息'
verbose_name_plural = verbose_name