AttributeError: объект 'WSGIRequest' не имеет атрибута 'get' heroku

У меня есть запрос get, но он не работает на heroku с этой ошибкой :

AttributeError: 'WSGIRequest' object has no attribute 'get'

Мне не удалось найти первопричину этого Ниже приводится мое мнение:

class PostDetail(generics.GenericAPIView):
    """Blog post details"""
    queryset = Post.objects.all()
    serializer_class = serializers.PostSerializer
    authentication_classes = (JWTAuthentication,)
    permission_classes = (PostsProtectOrReadOnly, IsMentorOnly,)
    lookup_field = 'slug'

    def get_post_object(self, slug):
        post = get_blog_by_slug(slug)
        return post

    def get(self, request, slug):
        post = self.get_post_object(slug)
        if not post:
            return response.Response({
                'errors': _('Sorry, Blog post with the specified slug does'
                            'not exist')
            }, status=status.HTTP_404_NOT_FOUND)

        # track views of a viewed blog post.
        ip_address = get_ip_address(request)
        obj = CustomIPAddress.objects.create(address=ip_address)
        post.address_views.add(obj)

        serializer = self.serializer_class(post, context=request)
        return response.Response(serializer.data, status=status.HTTP_200_OK)

Методы, которые я вызываю выше :

def get_blog_by_slug(slug: str):
    """Get post by slug."""
    try:
        obj = Post.objects.get(slug=slug)
        return obj
    except Post.DoesNotExist:
        return None

def get_ip_address(request):
    """get ip address."""
    try:
        client_ip, is_routable = get_client_ip(request)
        if client_ip is None:
            return uuid.uuid4()
        else:
            return client_ip
    except AttributeError:
        return uuid.uuid4()
    except:
        return uuid.uuid4()

Интересно, почему на локальном сервере он работает, а на сервере heroku я получаю эту ошибку.

Полные журналы из heroku :

Вы не можете посылать request непосредственно как context=… в сериализатор. Контекст должен быть словареподобным объектом.

Что вы можете сделать, так это построить словарь, в котором вы сопоставите request с запросом, например:

serializer = self.serializer_class(post, context={'request': request })

Тогда вы можете использовать это как:

class PostSerializer(serializers.ModelSerializer):
    # ⋮

    def create(self, validated_data):
        """Create a blog post in a customized way."""
        tags = validated_data.pop('tags', [])
        post = Post.objects.create(**validated_data, owner=self.context['request'].user)
        # ⋮
Вернуться на верх