【问题标题】:i want to call two different class "You cannot access body after reading from request's data stream"我想调用两个不同的类“从请求的数据流中读取后,您无法访问正文”
【发布时间】:2017-06-19 09:06:34
【问题描述】:

我想在 Django 的 viewset 中从一个类中调用两个不同的类

class SocialLoginViewSet(viewsets.ModelViewSet):
    permission_classes = (permissions.AllowAny,)
    def social_login(self, request):
        email = request.data['email']
        if email:
            user_qs = MobileUser.objects.filter(email__iexact=email, is_active=True)
            if user_qs.exists():
                ExtendedJSONWebTokenAPIView.as_view()(self.request)
            else:
                NormalUserCreateViewSet.as_view()(self.request)

我通过 Post 方法调用的两个视图集

【问题讨论】:

  • 你的方法看起来很糟糕。此异常的存在是有原因的,您错误地使用了 DRF 及其抽象层。但是,如果您不在乎,可以使用 request.raw_post_data 而不是 request.data 来解决它。

标签: django python-2.7 django-views django-rest-framework


【解决方案1】:

由于各种原因,Django 只允许读取 POST 正文一次。

看看这个答案: Exception: You cannot access body after reading from request's data stream

【讨论】:

    猜你喜欢
    • 2020-11-08
    • 2021-03-13
    • 2020-11-12
    • 1970-01-01
    • 2019-11-21
    • 2023-03-14
    • 1970-01-01
    • 2020-01-29
    • 2014-02-18
    相关资源
    最近更新 更多