Как получить данные о нескольких файлах изображений в 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')
Таким образом можно загрузить несколько изображений. Надеюсь, это поможет вам.