我正在学习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>
在django的urls.py中,我会
url(r'^url$', view.index, name='index')
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]
我如何以干净的方式完成[..]中的步骤?
答案 0 :(得分:0)
之前我没有使用过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。