В моем случае я хочу, чтобы разные пользователи могли работать над своими собственными проектами, и им было запрещено видеть материалы в других проектах, даже на сайте администратора. Существует ряд моделей, которые должны быть отфильтрованы обратно до «проекта» - например, конкретный Ответ расширяет класс «Абстрактный», в котором есть вопрос в качестве внешнего ключа, и Вопрос, в котором проект является внешним ключом.
Мой план состоял в том, чтобы изменить ModelManager по умолчанию get_queryset () и вернуть набор запросов с фильтром, например: Project.objects.filter (group__in = user.groups.all ())
Задача для ModelManager надежно знать, какой пользователь его вызывает, не меняя подпись каждый раз, когда создается набор запросов. Я нашел это решение, которое выглядит очень гладким:
Промежуточное ПО, поддерживающее набор запросов, проиндексированных потоком, обрабатывающим их
Но оно с 2010 года, и я не уверен сколько Django, Python, обработка потоков, ландшафт безопасности и т. д. c могли измениться за это время. Есть ли сейчас предпочтительный способ сделать это, возможно, с помощью сеансов?
(связанная с этим проблема здесь: Django пользовательский объект запроса менеджера / текущий пользователь )