用于在单个用户配置文件中存储多个文件的Django模型

时间:2014-07-22 12:57:12

标签: django django-models

当用户登录数据库时,他会生成一个WAV音频文件(在浏览器中),该文件必须存储在数据库中。问题是,当我第一次存储文件时,一切都很好。但是,当我在那之后存储时,我得到IntegrityError。有人有解决方案吗?

我当前的models.py如下:

class InputFile(models.Model):

audio_file = models.FileField(upload_to='audio_files')
input_user = models.ForeignKey(User)
rec_date = models.DateTimeField('date recorded', auto_now_add=True)

1 个答案:

答案 0 :(得分:-1)

我仍然建议将用户媒体存储为文件。这样就可以避免在数据库中存储大文件,这不仅效率低,而且速度慢。

此外,我不建议在Django请求 - 响应中执行音频处理。尝试使用像Celery这样的异步解决方案。

音频处理与视频处理非常相似。您可以从YouTube等视频分享网站的工作中获得很多想法。上传文件后,他们会在上传和编码完成后通知您。这发生在一个单独的任务队列中。

中间和最终媒体文件再次存储为文件并直接从文件系统提供。通过避开数据库层,您可以获得响应更快的应用程序。