如果我将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数组,但这看起来不够优雅且非RESTful。有什么想法吗?
答案 0 :(得分:0)
我不明白你的问题,但我认为你想在输入中添加归档answer
到django-rest表单或raw,你可以在序列化程序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(null),
如果这不是你的问题,请说出来,我会帮助你。