Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.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模板中显示图像(使用ImageField)_Python_Django_Django Models - Fatal编程技术网

Python 无法在Django模板中显示图像(使用ImageField)

Python 无法在Django模板中显示图像(使用ImageField),python,django,django-models,Python,Django,Django Models,我正在将一个图像从管理站点上传到模型的imagefield中。我已经对settings.py和url.py文件进行了必要的更改,并在我的项目中添加了媒体目录。虽然该图像显示在管理站点中,但在呈现模板时,我遇到了“图像”属性没有与其关联的文件”错误 这是我的档案: 模板(users.html) views.py from django.shortcuts import render from django.http import HttpResponse from .models import U

我正在将一个图像从管理站点上传到模型的imagefield中。我已经对settings.py和url.py文件进行了必要的更改,并在我的项目中添加了媒体目录。虽然该图像显示在管理站点中,但在呈现模板时,我遇到了“图像”属性没有与其关联的文件”错误

这是我的档案:

模板(users.html)

views.py

from django.shortcuts import render
from django.http import HttpResponse
from .models import User

# Create your views here.
def index(request):
    return HttpResponse("<em>My Second Project</em>")

def help(request):
    helpdict = {'help_insert':'HELP PAGE'}
    return render(request,'appTwo/help.html',context=helpdict)

def dispUsers(request):
    user=User.objects.order_by('f_name')
    user_dict={"user_list":user}
    return render(request,'appTwo/users.html',context=user_dict)
url.py

"""ProTwo URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include
from appTwo import views
from django.conf import settings
from django.conf.urls.static import static


urlpatterns = [
    path('', views.index, name="index"),
    path('help/', include('appTwo.urls')),
    path('admin/', admin.site.urls),
    path('users/',views.dispUsers,name="users")
]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

您的用户模型上有一个可选的图像字段。当然,您现在或以后会有一些记录没有与用户关联的图像。因此,现在的模板将抛出一个错误。您所要做的就是在模板中放入一个条件,以查看用户记录是否实际具有与其关联的图像

{% if user.image %}
    <img src="{{ user.image.url }}">
{% endif %}
{%if user.image%}
{%endif%}
在图像字段中使用此选项
请检查图片目录中存储的文件

如下更改您的型号:

image = models.ImageField(upload_to='pictures/', null=True, blank=True)

并检查图像是否正确上载。

在这种情况下,可能会出现重复的图像。即使我已从管理站点上载了一个图像,也不会显示任何图像
"""ProTwo URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include
from appTwo import views
from django.conf import settings
from django.conf.urls.static import static


urlpatterns = [
    path('', views.index, name="index"),
    path('help/', include('appTwo.urls')),
    path('admin/', admin.site.urls),
    path('users/',views.dispUsers,name="users")
]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
{% if user.image %}
    <img src="{{ user.image.url }}">
{% endif %}
upload_to='pictures/'
image = models.ImageField(upload_to='pictures/', null=True, blank=True)