gpt4 book ai didi

python - DJANGO MEDIA_URL 返回同一页面而不是显示图像

转载 作者:行者123 更新时间:2023-12-01 09:29:23 25 4
gpt4 key购买 nike

关于如何上传媒体文件、什么是正确的配置以及如何在我们的应用程序上提供它,有很多答案。

但是我的项目似乎没有任何作用。

目的很简单:用户上传图像。 Django 将其显示在上。

models.py

class UploadImageModel(models.Model):
image = models.FileField()
title = models.CharField(max_length=100, null=True, blank=True)

url.py

from django.conf.urls import url, include
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include("Image.urls")),
]

if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

View .py

from django.shortcuts import render
from django.views import View
from .forms import UploadImageModelForm
from .models import UploadImageModel
# Create your views here.

class UploadImage(View):

def get(self, request, *args, **kwargs):
form = UploadImageModelForm()
context = {
"form":form,
}
return render(request, "index.html", context)

def post(self, request, *args, **kwargs):
form = UploadImageModelForm(request.POST or None, request.FILES or None)
if form.is_valid():
instance = form.save(commit=False)
instance.title = str(instance.image)
instance.save()
context = {
"form":form,
"instance":instance,
}
return render(request, "index.html", context)

settings.py

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "Static")

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "Media")

index.html

{% if instance.image %}
<img src="{{instance.image.url}}" alt="Image"/>
{% endif %}

错误:上传名为 <something>.jpg 的图像后,如果我访问,127.0.0.1:8000/media/1.jpeg ,浏览器不显示图像,而是显示 index.html页。

enter image description here

那么如何正确提供该媒体文件?

最佳答案

这一行包含了每个 URL:

url(r'', include("Image.urls")),

如果没有看到 Image/urls.py 的内容,我只能建议用执行索引 View 的显式模式替换该行,例如:

url(r'^$', my_index_view),

关于python - DJANGO MEDIA_URL 返回同一页面而不是显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50093614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com