sri*_*ush 1 python django django-templates
我正在尝试将一组文件手动存储在媒体文件夹中,并通过模板中的路径访问它们。这是我的媒体设置
MEDIA_URL="/media/"
MEDIA_ROOT=os.path.join(BASE_DIR,"media")
Run Code Online (Sandbox Code Playgroud)
这是我的项目网址
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('books.urls')),
]+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)
这是我的模板代码
<div class="category-img">
<img src="/media/logo.png" alt="">
</div>
Run Code Online (Sandbox Code Playgroud)
并且没有显示图像。Media 文件夹中有 logo.png 文件。我收到以下错误。
Internal Server Error: /media/bordered.jpg/
Traceback (most recent call last):
File "C:\Users\Sriram\anaconda3\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Sriram\anaconda3\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Sriram\Desktop\books_site\books\views.py", line 42, in bookinfo
book["description"]=descriptions[zonar][books[zonar].index(book_name)]
KeyError: 'media'
Run Code Online (Sandbox Code Playgroud)
你需要使用{% get_media_prefix %}标签。
您必须在设置中设置 和 并将其添加MEDIA_ROOT到您的 urls.py 中,如本文档中所示。并像这样更改您的模板代码:MEDIA_URLMEDIA_URL
{% load static %}
....
<div class="category-img"><img src="{% get_media_prefix %}logo.png" alt=""></div>
Run Code Online (Sandbox Code Playgroud)
此标签正确加载 Django 设置中媒体文件路径设置的 URL。如果您想在服务器中部署项目或使用挂载外部服务器来加载媒体,只需更改 django 项目中的媒体设置。
在网站中保存要用作静态的图像的最佳实践,将此类文件保存在静态文件夹中,并使用 django 项目中的媒体文件夹将所有上传的文件保存在 Web 应用程序中。
并通过将 Django 模型对象传递给模板来加载它们,并使用{{object.field.url}}Django 模板中的标签加载 URL。
| 归档时间: |
|
| 查看次数: |
7678 次 |
| 最近记录: |