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