【问题标题】:Allow Group Creator/Owner Approve/Deny a user's request to join group允许群组创建者/所有者批准/拒绝用户加入群组的请求
【发布时间】:2012-10-05 06:30:15
【问题描述】:

我希望Users 能够请求加入Group,创建该组的人将被称为Owner,任何非Owner 都必须请求加入Owner' s组。 Owner 可以批准或拒绝用户的请求。 Owner 也可以将用户添加到他们的Group 并且User 可以批准/拒绝Owner 的请求。关于如何开始的任何建议?

【问题讨论】:

    标签: django django-models django-users


    【解决方案1】:

    我有一个具有相同要求的 django 应用程序。这是我建模的方式(当然没有“正确”的方式,这取决于您的应用程序的需求):

    class User(models.Model):
        number = models.CharField(max_length=24)
        name = models.CharField(max_length=128, blank=True, null=True)
        email = models.CharField(max_length=64, blank=True, null=True)
        ...
    
    class Group(models.Model):
        name = models.CharField(max_length=128)
        owner = models.ForeignKey(User)   
        members = models.ManyToManyField(User, through='Membership', related_name='members', blank=True, null=True)
        ...
    
    class Membership(models.Model):
        # You can add other statuses depending on your application's needs
        STATUS_SUBSCRIBED = 0
        STATUS_UNSUBSCRIBED = 1
        STATUS_REQUESTED = 2
    
        STATUS = (
        (STATUS_SUBSCRIBED, 'Joined'),
        (STATUS_UNSUBSCRIBED, 'Unsubscribed'),
        (STATUS_REQUESTED, 'Requested'),
        )
    
        user = models.ForeignKey(User)
        group = models.ForeignKey(Group)
        status = models.IntegerField(choices=STATUS)
    
        added = models.DateTimeField(auto_now_add=True)
        last_updated = models.DateTimeField(auto_now=True)
    

    【讨论】:

    • 那么从一个角度来看,您将如何允许 Group owner (request.user) 更改 memberss 的请求状态?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 2021-03-05
    • 1970-01-01
    • 2012-11-25
    • 2018-05-17
    • 1970-01-01
    • 2011-06-28
    相关资源
    最近更新 更多