Уведомления

Группа в Telegram: @pythonsu

#1 Май 5, 2016 14:18:25

zkweb
Зарегистрирован: 2015-08-05
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Организация прав доступа по группам

В джанго еще новичок, прошу не ругать )

Есть несколько групп: 1) руководитель закупок, 2) менеджеры закупок 3) руководитель проектов, 4) менеджеры проектов

view.py
def get_items_queryset(self):
    if self.request.user.has_perm('netsch.view_netsch_all'):
        return Netsch.objects.all()
    else:
        return Netsch.objects.filter(user=self.request.user)
class NetschListView(ListView):
    get_queryset = get_items_queryset     
    template_name = 'netsch_list.html'

Мне необходимо сделать так: 1) Пользователь из группы “Руководитель закупок” видел свои записи + записи тех пользователей которые состоят в группе “Менеджеры закупов” 2) сделать тоже самое только для “Руководитель проектов”

Помогите, пожалуйста, написать код. Куда двигаться? вроде как начал делать, но застрял как это сделать по группам….

Офлайн

#2 Май 5, 2016 15:23:41

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Организация прав доступа по группам

class NetschListView(ListView):
    model = Netsch
    template_name = 'netsch_list.html'
    def get_super_queryset(self):
        qs = super(NetschListView, self).get_super_queryset()
        if self.request.user.groups(name__in=[
                u'Руководитель закупок', u'Руководитель проектов']).exists():
            qs = qs.filter(Q(user=self.request.user) |
                           Q(user__groups__name=u'Менеджеры закупов'))
        elif self.request.user.groups(name=u'Менеджеры закупов').exists():
            qs = qs.filter(BLAH_BLAH)
        return qs

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version