[英]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.