'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 возникает ошибка, прошу помощи
к слову, правильно ли я всё оформил? контент должен сохраняться и потом выводиться на отдельной странице, он должен быть привязан к статье
и ещё вопрос: как сделать так, чтобы я при заполнении формы с контентом мог добавить дополнительные?