Django休息框架接收POST值添加新值>保存>回复

时间:2014-04-28 05:20:02

标签: django django-rest-framework

我发现的唯一解决方案,因为我正在发送POST,我在views.py上使用了以下内容,如果有正确的方法来执行此操作,请使用request.DATA,因为当它传递给序列化程序时.is_valid()即使我发送一个空帖子也是如此,它总是创建一个新的sessionid,而不是之前验证它。我已经尝试过使用pre_save(),但我不知道它是如何工作的,文档对我来说似乎是blackmagic。

views.py

@api_view(['POST'])
def startCall(request):

if request.method == 'POST':

    API_KEY = '00000'
    API_SECRET = '000000000000000'
    OTSDK = OpenTokSDK.OpenTokSDK(API_KEY, API_SECRET)
    opentok_session = str(OTSDK.create_session().session_id)

    post_values = request.POST.copy()
    post_values['opentok_sessionid'] = str(opentok_session)

    serializer = startCallSerializer(data=post_values)

    if serializer.is_valid():

        serializer.save()

        return Response(serializer.data, status=status.HTTP_201_CREATED)

    else:

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

serializers.py

class startCallSerializer(serializers.ModelSerializer):

class Meta:
    model = call
    fields = ('tutor', 'billed')
    exclude = ('tutor','billed')

0 个答案:

没有答案