簡體   English   中英

使用CoreAPI的Viewset中的Django REST自定義視圖參數

[英]Django REST Custom View Parameters in Viewset with CoreAPI

如果我將django-rest-framework視圖框架定義為:

class ProblemViewSet(viewsets.ModelViewSet):
    queryset = Problem.objects.all()
    serializer_class = ProblemSerializer

    @detail_route(methods=['post'], permission_classes=(permissions.IsAuthenticated,))
    def submit(self, request, *args, **kwargs):
        # my code here
        return Response(...)

當我查看定義的CoreAPI架構時,我發現:

problems: {
    create(title, text, value, category, hint)
    destroy(pk)
    list([page])
    partial_update(pk, [title], [text], [value], [category], [hint])
    retrieve(pk)
    submit(pk)
    update(pk, title, text, value, category, hint)
}

我希望submit API端點采用一個額外的參數,稱為answer ,但是到目前為止,我還沒有弄清楚如何添加這樣的自定義參數。 我知道我可以只傳遞POST數組,但這似乎不夠優雅且不可靠。 有任何想法嗎?

我不明白您的問題,但我認為您想在輸入中添加django-rest格式或原始格式的answer ,您可以在序列化器ProblemSerializer添加以下內容:

from rest_framework import serializers
...
class CustomerSerializer(serializers.ModelSerializer):
    answer = serializers.SerializerMethodField()
    class Meta:
        model = Problem
        fields = ['answer', 'my-normal-params',...]

def get_answer(self, problem):
    if hasattr(problem, 'answer'):
        request = self.context['request']
        return answer

在get_answer方法中,您將在json中顯示所需的值,或者如果需要,可以返回None(空),

如果那不是您的問題,請對我說,我會幫助您。

暫無
暫無

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

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