Ошибка при использовании django_scopes : 'A scope on dimension(s) tenant needs to be active for this query'.

Я использую модуль django_scopes для интеграции аренды во все представления get в моем приложении django.

В соответствии с readme doc в репозитории: https://github.com/raphaelm/django-scopes там говорится:

Вероятно, у вас уже есть промежуточное ПО, которое определяет сайт (или арендатора, в целом) для каждого запроса на основе URL или вошедшего пользователя, и вы можете легко использовать его там, чтобы просто автоматически обернуть его вокруг всех ваших представлений, специфичных для арендаторов.

Соответственно, я настроил свое промежуточное программное обеспечение :

class TenantScoper:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        with scope(tenant='xyz'):
            response = self.get_response(request)
            return response

Однако, для набора представлений модели, когда я поднимаю сервер, я получаю ошибку: django_scopes.exceptions.ScopeError: Для этого запроса должна быть активна область видимости на арендаторе измерения(й).

class TenantFeatureViewSet(viewsets.ModelViewSet):
    serializer_class = TenantFeatureSerializer
    queryset = TenantFeature.objects.all()

Хотя он отлично работает для пользовательского вида get:

class TenantFeatureView(APIView):
    def get(self, request):
        data = TenantFeature.objects.all()

Похоже, что ошибка возникает, когда строка TenantFeature.objects.all() выполняется во время инициализации сервера, Есть ли какой-нибудь обходной путь для этого?

Вернуться на верх