开发者社区> 问答> 正文

Django 这样的不同用户类型如何实现好?

现在我的 Django 网站要实现两种类型的用户,
本来我的想法是利用 permissions ,控制不同类型用户的访问权限,但是发现有一个问题。
大概的情况是:

1.一类用户不可以发图片(暂称为第一类用户),而另一类用户可以发图片(暂称为第二类用户),这个很容易通过设置permissions实现

  1. 第一类用户可以关注第二类用户,这个先设置permissions,然后应该用ManyToManyField来实现,因为一个第一类用户可以关注很多个第二类用户,一个第二类用户也可以被很多个第一类用户关注。

但是问题是:如果用ManyToManyField,那必须将两类用户存在两个数据表中,
Django虽然可以自定义用户模型,但是他只支持一个认证模型啊,
将两类用户存在两个数据表中如何实现好?

展开
收起
a123456678 2016-06-29 13:50:00 3100 0
1 条回答
写回答
取消 提交回答
  • Django 的many-to-many 是支持recursive的,然后在加一个字段表示用户类型。基本的模型可能如下:
    
        class YourModel(models.Model):
    
            """ your model description """
    
            UserType = [
                (1, '第一类用户'),
                (2, '第二类用户'),
            ]
    
            user = models.ManyToManyField("self")  # recursive many to many relationship
            user_type = models.IntegerField("用户类型", choices=UserType)
    2019-07-17 19:49:03
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
函数计算最佳实践:快速开发一个分布式 Puppeteer 网页截图服务 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载