Python Django HTML变量中的Imagefield
我是Django的新手,试图创建一个通过Django管理员上传图片的网站 我试图在HTML中查看上传到Imagefield中的图像。 但我就是不能让图像正常工作 Banner.objects.all()似乎无法获取媒体文件夹中的所有图像文件 url.pyPython Django HTML变量中的Imagefield,python,django,Python,Django,我是Django的新手,试图创建一个通过Django管理员上传图片的网站 我试图在HTML中查看上传到Imagefield中的图像。 但我就是不能让图像正常工作 Banner.objects.all()似乎无法获取媒体文件夹中的所有图像文件 url.py from django.contrib import admin from django.urls import path, include from django.conf import settings from django.conf.u
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
models.py
from django.db import models
from django.db.models.signals import pre_delete
from django.dispatch.dispatcher import receiver
from django.utils import timezone
from django.contrib.auth.models import User
from PIL import Image
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now) #auto_now=True //auto date
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
class Banner(models.Model):
title = models.CharField(max_length=100)
images = models.ImageField(upload_to='images',null=True,blank=True)
def __str__(self):
return self.title
views.py
from django.shortcuts import render
from django.views.generic import(
ListView,
DetailView
)
from .models import *
# Create your views here.
class PostListView(ListView):
model = Post
template_name = 'blog/home.html'
context_object_name = 'posts'
ordering = ['-date_posted'] #arrange date posted with latest on top
paginate_by = 6
def Banner_view(request):
banner = Banner.objects.all()
return render(request, 'blog/home.html',{'banner':banner})
设置.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')
#uploaded file in base directory "media"
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
home.html
{% for b in banner %}
<div>
<img src="{{ b.images.url }}">
</div>
{% endfor %}
{%b在banner%}
{%endfor%}
你应该这样写
您应该使用/
进行路径检测
images = models.ImageField(upload_to='images/', null=True,blank=True)