'dict' object has no attribute 'save'

У меня имеется такой код: views.py

def create_article(request):
    if request.method == 'POST':
        form = ArticleForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('content'))
    else:
        form = ArticleForm()
    return render(request, 'content/create.html', {'form': form})

def add_content(request):
    TextFormset = formset_factory(TextForm, extra=1, can_delete=True, can_order=True)
    FileFormset = formset_factory(FileForm, extra=1, can_delete=True, can_order=True)
    ImageFormset = formset_factory(ImageForm, extra=1, can_delete=True, can_order=True)
    VideoFormset = formset_factory(VideoForm, extra=1, can_delete=True, can_order=True)
    if request.method == 'POST':
        text = TextFormset(request.POST, prefix='text')
        file = FileFormset(request.POST, request.FILES, prefix='files')
        image = ImageFormset(request.POST, request.FILES, prefix='images')
        video = VideoFormset(request.POST, prefix='videos')
        if text.is_valid() and file.is_valid() and image.is_valid() and video.is_valid():
            text_ = text.cleaned_data
            file_ = file.cleaned_data
            image_ = image.cleaned_data
            video_ = video.cleaned_data
            for form in text_:
                form.save()
            for form in file_:
                form.save()
            for form in image_:
                form.save()
            for form in video_:
                form.save()
            return redirect('list')
    else:
        text = TextFormset(prefix='text')
        file = FileFormset(prefix='files')
        image = ImageFormset(prefix='images')
        video = VideoFormset(prefix='videos')
    return render(request, 'content/content.html', {'text': text, 'file': file,'image': image,'video': video})

forms.py

class ArticleForm(ModelForm):
    class Meta:
        model = Article
        fields = ['title']

class TextForm(ModelForm):
    class Meta:
        model = Text
        fields = ['text']

class FileForm(ModelForm):
    class Meta:
        model = File
        fields = ['file']

class ImageForm(ModelForm):
    class Meta:
        model = Image
        fields = ['image']

class VideoForm(ModelForm):
    class Meta:
        model = Video
        fields = ['video']

models.py

class Article(models.Model):
    title = models.CharField(max_length=50)

    def __str__(self):
        return self.title

class Text(models.Model):
    article = models.ForeignKey(Article, on_delete=models.CASCADE)
    text = models.TextField()

class File(models.Model):
    article = models.ForeignKey(Article, on_delete=models.CASCADE)
    file = models.FileField(upload_to='files')

class Image(models.Model):
    article = models.ForeignKey(Article, on_delete=models.CASCADE)
    image = models.ImageField(upload_to='images')

class Video(models.Model):
    article = models.ForeignKey(Article, on_delete=models.CASCADE)
    video = models.URLField()

при попытке заполнить формсет в add_content возникает ошибка, прошу помощи

к слову, правильно ли я всё оформил? контент должен сохраняться и потом выводиться на отдельной странице, он должен быть привязан к статье

и ещё вопрос: как сделать так, чтобы я при заполнении формы с контентом мог добавить дополнительные?

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