我正在学习Django auth,它看起来很棒! 然而,我注意到它似乎有点太基于模型了。
我想到的是,假设我有两个网页(监控,统计),并且它们都使用相同的模型(事件表)。我想要的是为不同用户添加访问监控和统计信息的权限,例如:can_use_monitoring,can_use_statistics。
我认为将相同的模型添加到这两个权限并不是一个问题,但似乎没有必要和误导。或者我错过了什么?
你将如何实现这一目标?
谢谢,
诉
///////更新/////////
一想法:我想要的是基于网页而不是模型获得许可。一个页面可能使用更多模型,我不知道应该将哪个模型分配给权限(因为我只能使用一个)。
答案 0 :(得分:0)
我认为将相同的模型添加到这两个权限并不是一个问题,但似乎没有必要和误导。或者我错过了什么?
是的,将相同模型添加到不同的权限没有问题。
通常您应该使用Django's Groups功能。创建一个具有一组权限的组,然后继续将用户添加到该组。
一想法:我想要的是获得基于网页而非模型的许可。一个页面可能使用更多模型,我不知道应该将哪个模型分配给权限(因为我只能使用一个)。
通过使用user_passes_test
或permission_required
修饰符装饰您的视图,可以实现这一点。 More here.和here
例如
from django.contrib.auth.decorators import user_passes_test
@user_passes_test(email_check)
def my_view(request):
...
def email_check(user):
return user.email.endswith('@example.com')