Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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)_Django_Django Models_Django Views_Django File Upload - Fatal编程技术网

将视图中创建的文件保存到后端(Django)

将视图中创建的文件保存到后端(Django),django,django-models,django-views,django-file-upload,Django,Django Models,Django Views,Django File Upload,我有以下型号: def upload_to(instance, filename): return os.path.join('/%s/' % instance.user.username, filename) class UserAudioAnswer(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL) question = models.ForeignKey(Question)

我有以下型号:

def upload_to(instance, filename):

    return os.path.join('/%s/' % instance.user.username, filename)

class UserAudioAnswer(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    question = models.ForeignKey(Question)
    audio_file = models.FileField(upload_to=upload_to)
    translated_english_answer = models.TextField(null=True, blank=True)
    my_points = models.IntegerField(default=-1)

    def __unicode__(self):
        return self.question.text
在我的视图中,我正在录制来自用户的音频文件,如下所示:

def start_recording(r,request):

    print("Reached start recording metho. About to start recording")

    with sr.Microphone() as source:
        print("Say something!")
        audio = r.record(source,duration=5)
    return audio
我的媒体根目录定义如下:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static_in_env", "media_root")
因此,在这个媒体根文件夹中,我必须创建一个带有用户名的文件夹,然后将文件保存在其中。我创建了upload_to函数来保存我的文件

我已经做了以下工作:

(一)

但这并不能拯救任何东西

2)
user\u audio\u answer.audio\u file=settings.MEDIA\u ROOT+“/”+request.user.username+“/”+random\u file\u name+”.flac“

它保存文件的路径,但路径从/Users/username/desktop开始,并继续

将文件保存到后端的正确方法是什么?我的做法是什么`

user_audio_answer = UserAudioAnswer()
user_audio_answer.audio_file.save = (random_file_name,File(f))
                    user_audio_answer.audio_file = settings.MEDIA_ROOT+"/"+request.user.username+"/"+random_file_name+".flac"