Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django rest框架接收POST值添加新值>;保存>;返回响应_Django_Django Rest Framework - Fatal编程技术网

Django rest框架接收POST值添加新值>;保存>;返回响应

Django rest框架接收POST值添加新值>;保存>;返回响应,django,django-rest-framework,Django,Django Rest Framework,我找到的唯一解决方案是我正在发送的帖子,我在views.py上使用了以下内容。请纠正我是否有正确的方法来执行此操作,但请使用request.DATA,因为当它传递到序列化程序时。is_valid()将变为真,即使我发送一篇空帖子,它也会生成一个新的sessionid,而不是在之前验证它。我试过用pre_save()来实现它,但我不知道它是如何工作的,文档对我来说就像是黑魔法 views.py @api_view(['POST']) def startCall(request): if requ

我找到的唯一解决方案是我正在发送的帖子,我在views.py上使用了以下内容。请纠正我是否有正确的方法来执行此操作,但请使用request.DATA,因为当它传递到序列化程序时。is_valid()将变为真,即使我发送一篇空帖子,它也会生成一个新的sessionid,而不是在之前验证它。我试过用pre_save()来实现它,但我不知道它是如何工作的,文档对我来说就像是黑魔法

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)
序列化程序.py

class startCallSerializer(serializers.ModelSerializer):

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

它没有得到回答,因为它不是一个问题。这是一个列表和一些代码上面的代码是有效的,但我甚至不知道从哪里开始。这就是为什么我发布了这个列表,因为我不知道把东西放在哪里。@skzryzg更改了我的问题描述,希望现在能更好地解释它。:)也许您需要进行一些客户端数据验证,以检查文本区域中是否有相关文本。你必须试着理解GET/POST的原理,才能让它起作用。发布一些东西并让它返回一个响应不是一个实现你想要实现的目标的好方法。你必须做的是使用GET after POST。一旦发布了数据,GET请求就可以获取数据了。payload=request.DATA.copy()payload.update({'opentok_sessionid':opentok_session})serializer=startCallSerializer(DATA=payload)并添加了opentok_sessionid,但未保存导师和计费ID