我是Django的初学者,我正在尝试使用权限来允许通过decorator访问特定的视图函数,只针对特定的用户类型。现在我完全被我读到的各种东西搞糊涂了,我不知道该怎么做。 我有两种不同的用户,分别是UserTypeONE和UserTypeTWO。 UserTypeONE和UserTypeTWO应该只能访问特定视图。 这是我的密码:
你知道吗myuserTypes.py文件你知道吗
class UserTypeONE(models.Model):
lieOtO_User = models.OneToOneField(settings.AUTH_USER_MODEL)
lie_SomeAttribute= models.CharField(max_length=300, help_text ='Name')
class Meta:
permissions = (('Can_View_MyShop', 'Can see Shop View'),)
class UserTypeTWO(models.Model):
lieOtO_User = models.OneToOneField(settings.AUTH_USER_MODEL)
lie_SomeOtherAttribute= models.CharField(max_length=300, help_text ='Name')
class Meta:
permissions = (('Can_View_Targets', 'Can see the Targets'),)
这就是我在我的生活中要做的视图.py你知道吗
@login_required
@permission_required('UserTypeONE.Can_View_MyShop', raise_exception=True)
def MyShopView(request):
#do something
我也试过了
@user_passes_test(lambda u: u.usertypeone.permission('Can_View_MyShop'))
正如你们所看到的,我是一个绝对的初学者,不幸的是,所有的文档和例子都没有给我带来任何好处,相反,我更困惑了。 我真的很感谢你的帮助。你知道吗
我将在这里使用
user_passes_test()
,因为您特别想要限制特定的视图。你知道吗首先,定义两个函数,当您与应该能够看到您的内容的用户打交道时,这些函数将返回
True
。看起来您的UserTypeOne
和UserTypeTwo
模型以一对一的关系扩展了基本User
模型,因此您可以使用hasattr
检查给定的基本用户是否具有以下属性之一:现在,当您有一个视图要限制为一个用户类型时,可以在它前面添加
user_passes_test
装饰器:login_url
是如果用户未通过您指定的测试,则将发送用户的位置。你知道吗相关问题 更多 >
编程相关推荐