我目前有一个订单管理应用程序。但是,我为此创建的团队有两个部门:办公室和工厂,这两个部门将使用同一应用程序,但每个团队都可以访问他们所需的内容。如果我应该创建两个不同的应用程序以登录到同一系统(这将是多余的代码),或者是否有其他方法可以设置权限,我感到困惑。我尝试使用django管理员权限,但它们似乎不起作用。
答案 0 :(得分:0)
您可以为不同的团队创建不同的html页面,例如办公室团队拥有自己的html页面,工厂团队拥有不同的html页面。
def user_login(request):
if request.method == 'POST':
username=request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username,password=password)
if user:
if user.is_active:
if user.is_admin:
login(request,user)
return HttpResponseRedirect(reverse('adminpage'))
#return render(request,'admin.html')
else:
login(request,user)
return HttpResponseRedirect(reverse('userpage'))
#return render(request,'user.html')
else:
return HttpResponseRedirect('Account not active')
else:
#message={"info":"someone tried to login and failed! ","details":"username :{} and password: {}".format(username,password)}
return HttpResponse("someone tried to login and failed ! <br />details: <br />username: {} <br /> password:{} ".format(username,password))
else:
return render(request,'login.html')
您可以根据条件创建具有指定角色的活动模型。(您可以创建工厂和办公室的单选按钮,并根据代码工作对单选按钮进行建模。
class MyUser(AbstractBaseUser):
email = models.EmailField(verbose_name='email address',max_length=255,unique=True,)
full_name = models.CharField(max_length=255,null=True,blank=True)
date_of_birth = models.DateField()
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
is_agent = models.BooleanField(default=False)
选择是:
USER_CHOICES = (
('is_admin','ADMIN'),
('is_agent', 'AGENT')
)
答案 1 :(得分:0)
您可以为用户和员工拥有相同的身份验证页面,并将他们重定向到同一页面(假设dashboard
)。现在,您可以在仪表板中添加一个链接,该链接仅在登录用户是超级用户时才可见。该链接将重定向到管理界面。
仪表板可能是两个用户都通用的东西。
希望这会有所帮助。