Django在Template中显示文件字段

时间:2017-01-11 18:24:53

标签: django

我想显示和存储在文件字段中的音频,但链接已经死了

#template
{% for audios in Audios %}
<audio controls>
    <source src="{{ audios.Audio_File.url }}" type="audio/mpeg">
</audio>
{% endfor %}

#settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

#urls.py
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

3 个答案:

答案 0 :(得分:0)

在for循环中

<audio controls>
  <source src="{{audios.Audio_File.url}}" type="audio/{{audios.Audio_File.type}}">

  
  Your browser does not support the audio tag.
</audio>

至少我们会知道浏览器是否支持音频,然后我们将从那里进行调试。

答案 1 :(得分:0)

我认为您应首先在设置中配置静态和媒体

PROJECT_DIR = os.path.dirname(os.path.dirname(__file__))


import os.path
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(ROOT_PATH, 'static/')

MEDIA_ROOT = os.path.join(ROOT_PATH, 'media/')
MEDIA_URL = '/media/'

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader'
)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',

)

然后只是将一些文件放入静态并尝试通过浏览器访问它,然后检查你的Audio_File.url以便正确生成

答案 2 :(得分:0)

我恨我的生命

我在其中一个urls.py

中错过了$

我有什么

url(r'^', views.index, name='index'),

我改变了什么

url(r'^$', views.index, name='index'),

花了我超过24小时来弄明白,但我仍然不知道为什么只有我想要的文件受到影响