如何通过django中的POST检索.wav文件并将其存储在数据模型中?

如何通过django中的POST检索.wav文件并将其存储在数据模型中?,django,vxml,Django,Vxml,我正在学习VXML和Django。我试图找出如何从一些voice xml(vxml)浏览器中干净地检索录音,并将其传递到服务器端,在那里我使用django进一步处理传递的信息。然后我想将该文件存储在.wav文件中的某个位置,以便以后重播。我有以下代码片段: 在VXML文件中: <record name="recording" /> [here i record the recording] <filled> <subm

我正在学习VXML和Django。我试图找出如何从一些voice xml(vxml)浏览器中干净地检索录音,并将其传递到服务器端,在那里我使用django进一步处理传递的信息。然后我想将该文件存储在.wav文件中的某个位置,以便以后重播。我有以下代码片段:

在VXML文件中:

   <record name="recording" />
       [here i record the recording]
      <filled>
        <submit next="/url/" method="post" namelist="recording"/>
      </filled>
views.index定义

  def index(request):
     _recording = [..retrieve .wav from request here]
     _modelObject = ModelObject(recording= _recording)
     _modelObject.save()     #store recording in some database
     return render(request, 'genericfile.xml', content_type='text/xml')
在model.py中,我想我会有这样一个类:

  from django.db import model

  class ModelObject(model.Models)
       recording = [declare type of .wav file here]

我将如何以干净的方式完成[…]中的步骤

我以前没有使用过vxml,但看起来您希望同时存储.xml格式和.wav格式。 在这种情况下,我的解决方案如下:

from django.db import model

class ModelObject(model.Models)
    # Define a text filed or anything that can store long string
    # of _recording var above.
    recording = models.TextField() 
    def save(self, *args, **kwargs):
        if self.recording:
            # Convert vxml to wav and store to a file
            pass
        super(ModelObject, self).save(*args, **kwargs)

    @property
    def recording_wav(self):
        if not self.recording:
            return None
        return 'path/to/file.wav' 
记住,删除ModelObject的实例后,使用
post_delete
信号删除file.wav

from django.db import model

class ModelObject(model.Models)
    # Define a text filed or anything that can store long string
    # of _recording var above.
    recording = models.TextField() 
    def save(self, *args, **kwargs):
        if self.recording:
            # Convert vxml to wav and store to a file
            pass
        super(ModelObject, self).save(*args, **kwargs)

    @property
    def recording_wav(self):
        if not self.recording:
            return None
        return 'path/to/file.wav'