Если я правильно понял вопрос, это можно сделать через группы. Можно написать вот так:
from django.contrib.auth.decorators import user_passes_test
# декоратор для проверки вхождения пользователя request.user в определенную группу
def group_required(*group_names):
def in_groups(user):
if user.is_authenticated():
if user.is_superuser or bool(user.groups.filter(name__in=group_names)):
return True
return False
return user_passes_test(in_groups)
# оборачиваем нужную функцию из views.py в декоратор. Проверяем входит ли пользователь request.user в группу name_of_group
@group_required('name_of_group')
def home(request):
pass