Skip to content

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

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")

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions