簡體   English   中英

如何獲取請求參數並返回 django rest-framework

[英]How can I get the request parameter and return django rest-framework

我使用此代碼獲取 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 基於類的視圖將請求對象傳遞給帶有附加上下文的序列化程序。 您可以使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM