Skip to content

节点管理员模型设计及相关服务类 #13

@codetalks-new

Description

@codetalks-new

需求

基本需求梳理

  1. 可以指定管理员管理指定节点。
  2. 节点具有树状层级关系,因此管理员也应该有树状层级关系。
  3. 节点和管理员也是多对多的关系。
  4. 大的节点管理员可以管理子节点管理员。
  5. 对应直接节点管理员直接管理对应节点的主题及评论,也就是大的节点管理员不对主题和帖子进行跨级管理。

模型

为此增加多对多关联的 NodeModeratorRelation 中间表

class NodeModeratorRelation(BaseModel):
  """节点及管理员关联中间表"""
  node = models.ForeignKey(Node, on_delete=models.CASCADE, verbose_name="节点")
  moderator = models.ForeignKey(WepostUser, on_delete=models.CASCADE, verbose_name="管理员")
  memo = models.CharField("备注", max_length=128, blank=True, default='')

Node 模型也增加多对多的关联定义:

  moderators = models.ManyToManyField(WepostUser, symmetrical=False, through='NodeModeratorRelation',
                                      through_fields=('node', 'moderator'), related_name="moderated_node_set")

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions