На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD
  
    > Python Django ORM действие над строкой таблицы, работа с одной записью в классе Django
      Добрый день, уважаемые специалисты Django!
      Прошу помощи в таком вопросе:
      Есть код:

      ExpandedWrap disabled
        def get_readonly_fields(self, request, obj=None):
         
                all_fields = list(self.get_fields(request, obj))
                user_blocked_fields = all_fields[:]
                iskom = 'Самовывоз'
                naxodim = Articles.objects.filter(delivery_type__title__icontains=iskom)
         
                if request.user.has_perm('excels.can_edit_manager_group'):
                    user_blocked_fields = [f for f in user_blocked_fields if f not in self.manager_group_fields]
         
                if request.user.has_perm('excels.can_edit_upakovka_group'):
                    user_blocked_fields = [f for f in user_blocked_fields if f not in self.upakovka_group_fields]
         
                if request.user.has_perm('excels.can_edit_transport_group'):
                    user_blocked_fields = [f for f in user_blocked_fields if f not in self.transport_group_fields]
         
                # if request.user.has_perm('excels.can_edit_manager_group') and naxodim:
                #     user_blocked_fields = [f for f in user_blocked_fields if f not in self.manager_and_transport_group_fields]
                #
                # if request.user.has_perm('excels.can_edit_transport_group') and naxodim:
                #     user_blocked_fields = [f for f in user_blocked_fields if f not in self.transport_minus_all_group_fields]
         
                return user_blocked_fields


      Получается, что у меня происходит смена разрешений на редактирование полей в зависимости от прав пользователей.
      далее я хочу сделать разрешение не на всю таблицу, а только на ОДНУ СТРОКУ таблицы.
      То есть, когда заходишь в одну запись в таблице и выставляешь там в FK слово "Самовывоз", потом записываешь и тогда происходит смена одних полей по readonlu_fields на другие.
      Это у меня по фильтру происходит, но на всю таблицу (class), а мне нужно ТОЛЬКО НА ОДНУ СТРОКУ ГДЕ У МЕНЯ ЕСТЬ УКАЗАННОЕ СЛОВО "САМОВЫВОЗ" В ОДНОМ ИЗ ПОЛЕЙ.!
      Как мне это сделать?
      Спасибо всем кто откликнется!
      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0122 ]   [ 14 queries used ]   [ Generated: 23.06.21, 21:17 GMT ]