@zkweb

Как предоставить права для группы?

В джанго новичок, прошу не пинать :)
Есть вопрос относительно прав доступа, просмотра, редактирования

class Netsch(models.Model):
    user = models.ForeignKey(User, verbose_name = u"Пользователь")#
    month = models.SmallIntegerField(verbose_name = u"Месяц", choices=MONTH_CHOICES, blank=True,null=True)#
    year = models.SmallIntegerField(verbose_name = u"Год", choices=YEAR_CHOICES, blank=True,null=True)# 
    
class Netschlistwork(models.Model):
    netsch = models.ForeignKey(Netsch, verbose_name = u"ID работы")#   
    limitation = models.CharField(max_length=100,verbose_name = u"Срок исполнения")#
    index = models.TextField(u"Показатель")#
    resources = models.TextField(u"Ресурсы")#
    rating = models.CharField(max_length=100,verbose_name = u"Критерии оценки",blank=True)#
    comment = models.TextField(u"Комментарии",blank=True)#
    type = models.IntegerField(verbose_name = u"Тип", choices=TYPE_CHOICES,default=1)#
    status = models.IntegerField(verbose_name = u"Статус", choices=STATUS_CHOICES,default=1)#


Есть 5 групп: суперадмин, модератор оптового отдела, менеджеры оптового отдела, модератор отдела закупки, менеджеры закупок,

Сделал чтобы каждый пользователь из группы - редакторы видел только свои записи

def get_queryset(self, request):        
        if request.user.is_superuser:
            qs = Netsch.objects.filter()
            return qs
        else:   
            # остальным пользователям - пока сделал так \
            qs = Netsch.objects.filter(user=request.user.id)
            return qs


Мне необходимо дальше сделать след.: чтобы пользователь из группы модератор отдела закупки видел и редактировал все записи группы менеджеры закупок
Напишите, пожалуйста, код для примера. Как мне указать группе модератор отдела закупки, что он может видеть и редактировать группу менеджеры закупок
P.S установил еще модуль guardian
Спасибо! Простите, если написал криво \
  • Вопрос задан
  • 202 просмотра
Решения вопроса 1
1. Где находится функция get_queryset? В классе модели?
2. Про django-guardian - я не уверен, что вам он нужен. А эти задачи - действительно решаются посредством get_queryset, но в представлениях. Можно их наследовать от ListView, UpdateView, и переопределять get_queryset используя self.request.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы