使用UpdateView更改用户配置文件时,多类型用户的权限混乱-Django

时间:2018-06-25 01:42:31

标签: django authentication django-forms multiple-users

我在用户模型中有三种用户类型(创建,查询和普通),当我使用multiple type更改用户个人资料时,UpdateView用户的权限是混乱的,例如,{{ 1}},当admin单击普通用户时,页面中的该用户具有admin的权限,我的common user如下:

UpdateView

用户模型:

class UserUpdateView(UpdateView):
    model = User
    form_class = UserForm
    context_object_name = 'user'
    template_name = 'general/teachers/user_change_form.html'
    def get_object(self):
        return get_object_or_404(User, pk=self.kwargs['pk'])

用户形式:

class User(AbstractUser):
    name = models.CharField(max_length=100, verbose_name="姓名", default="", blank=True)
    gender = models.CharField(
        max_length=7,choices=(("male","男"),("female","女")),
        default="female", verbose_name="性别",
    )
    department = models.ForeignKey(
        Department,
        on_delete=models.CASCADE, null=True, blank=True, verbose_name="所属部门",
    )
    job_title = models.CharField(max_length=100, verbose_name="职位", default="", blank=True)
    mobile = models.CharField(max_length=11, verbose_name="手机号", default="", blank=True)
    email = models.EmailField(max_length=50, verbose_name="邮箱", default="", blank=True)
    is_employee = models.BooleanField(default=True, verbose_name='是否是普通用户')
    is_teacher = models.BooleanField(default=False, verbose_name='是否是查询用户')
    is_supervisor = models.BooleanField(default=False, verbose_name='是否是评测人')
    add_time = models.DateTimeField(auto_now=True, verbose_name="添加时间")

0 个答案:

没有答案