2014-12-08 3 views
0

я должен реорганизовать код, который, как:Как избавиться от связанных с группой вопросов?

views.py

def some_method(request): 
    customers = list() 
    if request.session['group'] == "group1": 
     foo = foo.objects.filter(blue=True) 
    else: 
     foo = foo.objects.all() 

У меня есть много, если другое заявление, что я хочу, чтобы уменьшить с помощью Джанго встроенных разрешений, функциональность аутентификации. Любая помощь ?

+0

возможно дубликат [групп пользователей и прав доступа] (HTTP : //stackoverflow.com/questions/12393726/user-groups-and-permissions) –

ответ

0

Рекомендую вам прочитать: Using the Django authentication system, а также раздел: The permission_required decorator.

Там вы обнаружите, что вы могли бы реорганизовать функцию так:

@permission_required('some.permission.only.group1.has') 
def some_method(request): 
    customers = list() 
    foo = foo.objects.filter(blue=True) 

Для случая пользователь не в group1 должен существовать другой вид. Пример, который вы опубликовали, на самом деле не иллюстрирует необходимость иметь представление для каждого случая, но поверьте, он облегчит вашу жизнь.

Совет: В шаблонах вы можете ограничить то, что пользователь видит, используя разрешения. Вы можете управлять разрешениями даже до вызова вызова.

{% if perms.app_label.can_do_something %} 
<form here> 
{% endif %} 

вошедшего в данный момент права доступа пользователя сохраняются в переменной шаблона {{завивки}}

Ссылки: Check permission inside a template in Django

Смежные вопросы