Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 19, 2021 12:48:50

Naum74
Зарегистрирован: 2021-02-19
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Django ORM действие над строкой таблицы

Добрый день, уважаемые специалисты Django!
Прошу помощи в таком вопросе:
Есть код:

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), а мне нужно ТОЛЬКО НА ОДНУ СТРОКУ ГДЕ У МЕНЯ ЕСТЬ УКАЗАННОЕ СЛОВО “САМОВЫВОЗ” В ОДНОМ ИЗ ПОЛЕЙ.!
Как мне это сделать?
Спасибо всем кто откликнется!

Офлайн

#2 Март 12, 2021 17:45:48

vitalvn
Зарегистрирован: 2021-03-12
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Django ORM действие над строкой таблицы

В Django ORM: таблица - это класс (как Вы верно указали), строки - это объекты, а столбцы - это атрибуты объектов.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version