相关疑难解决方法(0)

在Django Rest Framework中访问Viewset和Serializer中的请求对象?

我想在DRF中的Views.py和Serializers.py中访问请求对象.我的Views.py:

class ProductViewSet(viewsets.ReadOnlyModelViewSet):

    """
    This viewset automatically provides `list` and `detail` actions.
    """
    queryset = Product.objects.all()
    serializer_class = ProductSerializer(context={'request': request})
Run Code Online (Sandbox Code Playgroud)

我的Serializers.py:

class ProductSerializer(serializers.HyperlinkedModelSerializer):

    get_sr_price = serializers.SerializerMethodField('get_sr_price_func')

    def get_sr_price_func(self, obj):
        return self.request.user ??

    class Meta:
        model = Product
        fields = (
            'title', 'slug', 'product_stores', 'get_sr_price')
Run Code Online (Sandbox Code Playgroud)

在Serializers.py中,我得到了ProductSerializer' object has no attribute 'request'.另外在views.py中我得到了NameError: name 'request' is not defined

我如何访问请求对象?我是否必须将它从视图传递给序列化程序?那还有views.py和serializers.py之间的区别是什么?通常我会在Views.py中编写所有业务逻辑; 我还应该在视图中执行所有查询/过滤器,还是应该在序列化程序中执行它们,或者它没有任何区别.DRF新手请帮忙.

python django django-rest-framework

10
推荐指数
1
解决办法
9585
查看次数

标签 统计

django ×1

django-rest-framework ×1

python ×1