关于如何上传媒体文件,正确的配置是什么,以及如何在我们的应用程序上提供服务,有很多答案。在
但我的计划似乎没有任何效果。在
目的很简单:用户上传图像。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
页面。在
那么如何正确地服务这个媒体文件呢?在
这一行是所有URL的总称:
在没有看到
^{pr2}$Image/urls.py
的内容的情况下,我只能建议用执行index视图的显式模式替换该行,例如:相关问题 更多 >
编程相关推荐