Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django HTML变量中的Imagefield_Python_Django - Fatal编程技术网

Python Django HTML变量中的Imagefield

Python 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

我是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.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)