Загрузка нескольких фото Django

Нужно сделать возможность загружать сразу несколько картинок и выводить их на главной. Этот код как бы работает, нооо почему-то, если я загружаю две картинки, появляется три (то есть ещё одна повторяется). Подскажите пожалуйста, что здесь не так

models.py

class Post(models.Model):
    author = models.ForeignKey(User,
                               null=True,
                               on_delete=models.CASCADE,
                               verbose_name='Пользователь')
    image = models.ImageField(upload_to='images/')

    def __str__(self):
        return str(self.author)

views.py

class CreatePostView(CreateView):
    model = Post
    form_class = PostForm
    template_name = 'post.html'
    success_url = reverse_lazy('home')

    def form_valid(self, form):
        for item in self.request.FILES.getlist('image'):
            Post.objects.create(image=item, author=self.request.user)
        return super().form_valid(form)

forms.py

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ['image']

    image = forms.ImageField(label=u'Фотографии', widget=forms.FileInput(attrs={'multiple': 'multiple'}))

Шаблон

<ul>
    {% for post in object_list %}
      <h2>{{ post.author }}</h2>
      <img src="{{ post.image.url}}" alt="{{ post.author }}" width="200">
    {% endfor %}
</ul>

Ответы (1 шт):

Автор решения: Andrii Krasko
class CreatePostView(FormView):
    form_class = PostForm
    template_name = 'post.html'
    success_url = reverse_lazy('home')

    def form_valid(self, form):
        form.save(commit=False)
        for item in self.request.FILES.getlist('image'):
            Post.objects.create(image=item, author=self.request.user)
        return super().form_valid(form)

Потрібно змінити клас на FormView, а також заборони зберігати форму відразу form.save(commit=False).

→ Ссылка