Попробуйте загрузить несколько фотографий, но только 1 сохраняется - PullRequest
0 голосов
/ 07 мая 2018

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

from django.db import models
from django.contrib.auth.models import User


class File(models.Model):
    files = models.FileField(upload_to='images/')
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='files')

далее, форма для загрузки выглядит так:

from django import forms
from .models import File


class FileForm(forms.ModelForm):

    class Meta:
        model=File
        fields=('files',)
        widgets={'files':forms.FileInput(attrs={'id':'files','required':True,'multiple':True})}

наконец, представление «загрузить фото» выглядит следующим образом:

def upload_pics(request, user_id):
    if request.method == "POST":
    form = FileForm(request.POST, request.FILES)
    files = request.FILES.getlist('file_field')
    if form.is_valid():
        pics = form.save(commit=False)
        pics.user = request.user
        pics.files = request.FILES[files]
        return redirect("groups:index")

else:
    form = FileForm()
    render(request, 'accounts/account_form.html', {'form':form})
return render(request, 'accounts/account_form.html', {'form':form})

проблема в том, что сохраняется только 1 изображение. любая помощь очень ценится!

1 Ответ

0 голосов
/ 07 мая 2018

Ваш код выглядит нормально, но кажется, что вы ищете Django Formsets . Это позволит вам загружать несколько изображений одновременно. Также взгляните на ответ на этот вопрос: Как загрузить несколько изображений в блог в django

...