【发布时间】:2020-02-28 23:23:38
【问题描述】:
我正在构建一个应该有以下类型用户的 API
super_user - 创建/管理管理员
admin - 管理事件(模型)和事件参与者
participants - 参加活动,被管理员邀请参加活动
另外我想让每种类型的用户都有电话号码字段
class SuperUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
phone_number = models.CharField(max_length=20)
class Admin(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
phone_number = models.CharField(max_length=20)
class Participant(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
phone_number = models.CharField(max_length=20)
但是直觉告诉我这是一种错误的处理方式。有人可以帮忙吗。
【问题讨论】:
-
您的课程会进一步定制吗?现在他们看起来完全一样。与其使用 3 个不同的类来更改名称,为什么不使用一个类 Profile(或其他东西)并为用户类型设置一个字段(user_type)?这样查询所有用户会容易得多,并且可以根据 user_type 进行过滤
-
我将如何允许超级用户创建管理员用户,管理员使用您的方法创建另一个模型(事件)@whieronymus
标签: python django django-rest-framework