gpt4 book ai didi

python - 如何获取请求参数并返回django Rest-framework

转载 作者:行者123 更新时间:2023-12-01 00:05:27 24 4
gpt4 key购买 nike

我像使用此代码一样获取 API

http://127.0.0.1:8000/api/mytexts/?genre=93

class MyTextSerializer(serializers.ModelSerializer):
class Meta:
model = MyText
fields = ('id','text','genre')

它成功返回id text genre

然后现在,我想以 json 形式返回获取值 93genre=93

所以,我改变了代码,但还无法弄清楚..

class MyTextSerializer(serializers.ModelSerializer):
fetchBy = serializers.SerializerMethodField()
class Meta:
model = MyText
fields = ('id','text','genre','fetchBy)
def get_fetchBy: # error 'MyTextSerializer' object has no attribute 'get_fetchBy'
return ????

最佳答案

DRF 的基于类的 View 将请求对象传递给序列化器,并附加 context默认情况下。您可以使用 self.context 语法访问此上下文。因此,要在序列化器中获取查询参数,您可以执行以下操作:

class MyTextSerializer(serializers.ModelSerializer):
fetchBy = serializers.SerializerMethodField()
class Meta:
model = MyText
fields = ('id','text','genre','fetchBy')

def get_fetchBy(self, obj):
return self.context["request"].query_params.get("genre")

与您的实际问题无关,但关于变量命名的一个小评论。请注意,根据PEP8类的方法和属性名称应小写,并使用 _ 作为分隔符。例如:fetch_byget_fetch_by

关于python - 如何获取请求参数并返回django Rest-framework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60015475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com