Django. get_permission
У меня есть проблема, вызывающая 7 лишних sql запросов.
В функции get_permission я достаю из параметров url первичный ключ модели и после забираю запись из модели по этому ключу, однако, эта операция как и get_permission выполняется 7 раз и я не могу понять в чем дело, и должно ли так быть, может есть какой то процесс выполняющийся до get_permission единожды, и который позволит передать в последствие в get_permission запись из модели
Code of view:
class AnswerAPIViewSet( viewsets.ModelViewSet ):
""" Набор представлений, для модели Answers """
queryset = Answers.objects.select_related( 'creator', 'phor' )
def get_permissions(self):
pk_of_user_of_client = self.kwargs.get( 'pk_of_user_of_client' )
user_of_client = get_user_of_client_by_pk( pk_of_user_of_client )
self.kwargs['user_of_client'] = user_of_client
client = self.request.user
if self.action in ( 'destroy', 'change', 'create' ):
if not check_UserOfClient_belongs_to_client( client = client, user_of_client = user_of_client ):
return ( permissions.IsAdminUser(), )
if self.action == 'create':
return ( permissions.IsAuthenticated(), )
elif self.action in ( 'destroy', 'change', ):
return ( permissions.SpecialPermissionForAnswer(), )
return ( permissions.AllowAny(),)