Size: a a a

Django [ru] #STAY HOME

2021 February 10

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Nik S
А как запретить одним пользователям видеть объекты "принадлежащие" другим пользователям?
типа кастомный генерируемый permission в зависимости от текущего авторизованного юзера?(чтото "умное" сказал)
фильтровать кверисет
источник

R

Roomboy in Django [ru] #STAY HOME
Nikolay Cherniy
ну для самообразования я думаю норм, просто если это одна из основных фишек сайта, есть вероятность что окажется дорого
Ответь на мой вопрос, ты же знаешь =(
вот этот - https://t.me/pydjango/504261
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
предположу что не прокидываешь контекст в сериализатор
источник

NS

Nik S in Django [ru] #STAY HOME
Nikolay Cherniy
фильтровать кверисет
это работает лишь отчасти.
при вызове по api - просто вводишь путь - получаешь назад json с queryset из базы. Максимум пока что ограничивается только на Авторизованного и IsAdmin, и пр. базовые
Ибо нигде не прописано понятие что какой-то юзер имеет права на обьект а другие не имеют.
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Nik S
это работает лишь отчасти.
при вызове по api - просто вводишь путь - получаешь назад json с queryset из базы. Максимум пока что ограничивается только на Авторизованного и IsAdmin, и пр. базовые
Ибо нигде не прописано понятие что какой-то юзер имеет права на обьект а другие не имеют.
на список нет прав, только фильтровать эти списки, так это работает, про путь ничего не понял)
источник

R

Roomboy in Django [ru] #STAY HOME
Nikolay Cherniy
предположу что не прокидываешь контекст в сериализатор
Не очень понял, это из views прокидывается или там же в serializators?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Roomboy
Не очень понял, это из views прокидывается или там же в serializators?
во вьюхе
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
serializer(data=queryset, context={'request': request})
источник

NS

Nik S in Django [ru] #STAY HOME
Nikolay Cherniy
на список нет прав, только фильтровать эти списки, так это работает, про путь ничего не понял)
есть метод
def get_queryset(self):
может тут на if-ах можно это обыграть.
но кажется это неверно.
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Nik S
есть метод
def get_queryset(self):
может тут на if-ах можно это обыграть.
но кажется это неверно.
Мне кажется что идеологически правильно это делать в filter_queryset
источник

NS

Nik S in Django [ru] #STAY HOME
Nikolay Cherniy
Мне кажется что идеологически правильно это делать в filter_queryset
а это где? где прочитать?
поиск по drf-докам криво работает
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Nik S
а это где? где прочитать?
поиск по drf-докам криво работает
это тоже метод вьюхи
источник

NS

Nik S in Django [ru] #STAY HOME
Nikolay Cherniy
Мне кажется что идеологически правильно это делать в filter_queryset
там ничего не понятно)
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Nik S
там ничего не понятно)
def filter_queryset(self, queryset):
queryset = super().filter_queryset(queryset)
queryset = queryset.filter(тут твоя логика фильтрации)
return queryset
источник

NS

Nik S in Django [ru] #STAY HOME
Nikolay Cherniy
def filter_queryset(self, queryset):
queryset = super().filter_queryset(queryset)
queryset = queryset.filter(тут твоя логика фильтрации)
return queryset
а как доступ к request.user получить отсюда?
источник

N

Nire in Django [ru] #STAY HOME
Nik S
а как доступ к request.user получить отсюда?
запусти дебаггер плес
источник

N

Nire in Django [ru] #STAY HOME
3 кнопки в пучарме - запустить дебаг, поставить жука, в поиск ввести request
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Nik S
а как доступ к request.user получить отсюда?
self.request.user и + за дебагер
источник

NS

Nik S in Django [ru] #STAY HOME
Nikolay Cherniy
def filter_queryset(self, queryset):
queryset = super().filter_queryset(queryset)
queryset = queryset.filter(тут твоя логика фильтрации)
return queryset
cпасибо большое!
буду дальше трогать лед.

А дебагер на этом этапе не заработает потому что код не собран до рабочего)
он также всегда когда нужно не работает или не дает то в чем вопрос.
источник

КМ

Кирилл Мищенко... in Django [ru] #STAY HOME
Товарищи, помогите, я не пойму что происходит, почему я не могу войти в админку? на страницу логина не пускает из за вот этой странной ошибки, причем на продакшене то этот проект работает...
источник