DJANGO MEDIA_URL返回到同一页面,而不是显示imag

2024-04-25 11:31:23 发布

您现在位置:Python中文网/ 问答频道 /正文

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

但我的计划似乎没有任何效果。在

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

模型.py

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

在网址.py在

^{pr2}$

在视图.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)

设置.py

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

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

索引.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

那么如何正确地服务这个媒体文件呢?在


Tags: instancefrompy图像imageimportformindex
1条回答
网友
1楼 · 发布于 2024-04-25 11:31:23

这一行是所有URL的总称:

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

在没有看到Image/urls.py的内容的情况下,我只能建议用执行index视图的显式模式替换该行,例如:

^{pr2}$

相关问题 更多 >