Как получить данные о нескольких файлах изображений в django

Простая страница портфолио, загружающая несколько полей для изображений и выводящая все изображения на странице также сохраняет в БД

Способ загрузки нескольких файлов:

models.py:

from django.db import models
class Uploadimage(models.Model):
    images = models.FileField(upload_to='images/', blank=True, null=True)

forms.py:

from django import forms
from django.forms import ClearableFileInput
from .models import Uploadimage
class ImageUpload(forms.ModelForm):
    class Meta:
        model = Uploadimage
        fields = ['images']
        widgets = {
            'images': ClearableFileInput(attrs={‘multiple’: True}),
        }

views.py:

from django.shortcuts import render, redirect
from .models import Post
from .forms import ImageUpload
from .models import Uploadimage
def upload_image(request):
    if request.method == 'POST':
         form = ImageUpload(request.POST, request.FILES)
         images = request.FILES.getlist('images')
         if form.is_valid():
             for f in images:
                 file_instance = Uploadimage(images=f)
                 file_instance.save()
     else:
         form = ImageUpload()
 return render(request, 'foldername/upload_image.html', {‘form’: form})

templates:

appname/upload_image.html

<h1>Multiple image uploads</h2>
{% for image in images %}
  {{ image }}
{% endfor %}

urls.py:

urlspatterns = [
  your paths here
]+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

settings.py:

MEDIA_URL='/media/'
MEDIA_ROOT=os.path.join(BASE_DIR,'media')

Таким образом можно загрузить несколько изображений. Надеюсь, это поможет вам.

Вернуться на верх