Как отобразить изображение (imagefield) на веб-странице в Django - PullRequest
0 голосов
/ 23 мая 2019

Я пишу несколько кодов о загрузке и показе изображений с помощью django, но я не могу показать изображение на веб-странице, функция загрузки может быть правильной. Я пробовал много решений, но ни одно из них не может работать.

class IMG(models.Model):
    resumeImg=models.ImageField(upload_to='img')
    CompanyName=models.CharField(max_length=200)

Это функции загрузки и отображения:

def uploadImg(request):
    if request.method=='POST':
        new_img=IMG(
            resumeImg=request.FILES.get('resumeImg'),
            CompanyName=request.FILES.get('resumeImg').name
        )
        new_img.save()
    return render(request,'lib/uploading.html')

def showImg(request):
    imgs=IMG.objects.all()
    content={'imgs':imgs}
    for i in imgs:
        print (i.resumeImg.url)
    return render(request,'lib/showing.html',content)

Что-то не так с URL?Это lib \ urls.py, lib - это имя моего приложения:

urlpatterns = [
    ..........
    path('upload/',views.uploadImg),
    path('show/',views.showImg),
    ]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'lib/templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'django.template.context_processors.media',
            ],
        },
    },
]
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static')
MEDIA_ROOT = os.path.join(BASE_DIR,'lib\media').replace('\\','/')
MEDIA_URL='/media/'

STATICFILES_DIRS = (
    ('css', os.path.join(STATIC_ROOT, 'css').replace('\\', '/')),
    ('js', os.path.join(STATIC_ROOT, 'js').replace('\\', '/')),
    ('images', os.path.join(STATIC_ROOT, 'images').replace('\\', '/')),
    ('upload', os.path.join(STATIC_ROOT, 'upload').replace('\\', '/')),
)

Вот код Html. Что-то не так с img.resumeImg.urls ??


<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

  <title>Title</title>

</head>

<body>


   {% for img in imgs %}

     <img src="{{ img.resumeImg.url }}"/> 
   {% endfor %}

</body>

</html>

не видно изображения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...