尝试创建用户类型:“客户”和“员工”。希望在网站上注册的所有用户都是客户,他们看到的页面与员工不同

问题描述 投票:0回答:1

我正在阅读关于Django的这些文档:https://docs.djangoproject.com/en/1.11/topics/auth/customizing/#extending-user

我只是不确定要走哪条路。他们建议使用这样的自定义用户模型:

from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    pass

这样做,程序将是什么样做两种不同的用户类型。我应该有这样的事情:

class Client(AbstractUser):
        pass

class Employee(AbstractUser):
        pass

但那么新注册用户在注册时如何成为“客户”呢?我怎么能这样做,所以他们看到网站的不同部分而不是员工?

我只是在寻找一些如何处理这个问题的指导。

django django-models django-forms django-templates django-views
1个回答
1
投票

您只是解决权限问题,还是“客户”和“员工”需要自己的特定功能?

如果只是关于权限,那么使用permissions functionality of the auth library会更容易。

然后,您可以使用permissions decorator保护您的观点。

来自文档:

from django.contrib.auth.decorators import permission_required

@permission_required('polls.can_vote', login_url='/loginpage/')
def my_view(request):
    ...
© www.soinside.com 2019 - 2024. All rights reserved.