Django Media URL 没有将字符串返回到 Media 文件夹
Django Media URL not returning string to Media folder
运行 django 2.0 正在开发中,我正在尝试在列表视图中显示用户上传的图像。
这是 img 标签的行
<img class="img-responsive" src="{{MEDIA_URL }}{{ selected_membership.image }}" alt="Subscription Logo">
出于测试目的{{ MEDIA_URL }}{{ selected_membership.image }} returns "my_image.jpg"。很明显 MEDIA_URL 不工作,但第二部分是。
Urls.py
...
if settings.DEBUG:
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
# Serve static and media files from development server
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Settings.py
...
PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_DIR = os.path.dirname(PROJECT_DIR)
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
{{ MEDIA_URL }} 需要 return /media/
django 模型 (ImageField
) 支持为您的图像调用 url。您不必使用 MEDIA_URL
。只需使用 {{ selected_membership.image.url }}
即可。
它会给你的图片路径和名称。
Django 不为模板提供 MEDIA_URL 关键字。它在模型中用于通过模型字段(如 FileField 或 ImageField)保存的服务文件。如果您确定模板中需要 MEDIA_URL 关键字,您可以将其实现为上下文变量。例如:
class ExampleView(TemplateView):
template_name = 'example/template.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['MEDIA_URL'] = 'your_media_url'
return context
如果您需要此 url 作为模型字段的文件,您只需在模板中编写如下内容:
{{ model_name.field_name.url }}
运行 django 2.0 正在开发中,我正在尝试在列表视图中显示用户上传的图像。
这是 img 标签的行
<img class="img-responsive" src="{{MEDIA_URL }}{{ selected_membership.image }}" alt="Subscription Logo">
出于测试目的{{ MEDIA_URL }}{{ selected_membership.image }} returns "my_image.jpg"。很明显 MEDIA_URL 不工作,但第二部分是。
Urls.py
...
if settings.DEBUG:
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
# Serve static and media files from development server
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Settings.py
...
PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_DIR = os.path.dirname(PROJECT_DIR)
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
{{ MEDIA_URL }} 需要 return /media/
django 模型 (ImageField
) 支持为您的图像调用 url。您不必使用 MEDIA_URL
。只需使用 {{ selected_membership.image.url }}
即可。
它会给你的图片路径和名称。
Django 不为模板提供 MEDIA_URL 关键字。它在模型中用于通过模型字段(如 FileField 或 ImageField)保存的服务文件。如果您确定模板中需要 MEDIA_URL 关键字,您可以将其实现为上下文变量。例如:
class ExampleView(TemplateView):
template_name = 'example/template.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['MEDIA_URL'] = 'your_media_url'
return context
如果您需要此 url 作为模型字段的文件,您只需在模板中编写如下内容:
{{ model_name.field_name.url }}