Ошибка при использовании 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()
выполняется во время инициализации сервера, Есть ли какой-нибудь обходной путь для этого?