Почему Django inlineformset_factory получает ошибку запрета сохранения при загрузке файла?

Info Я использую django inlineformset_factory для загрузки файлов, которые связаны с моделью Aritcle. Поэтому у меня есть представление на основе класса, где мы пытаемся сохранить данные двух форм, одна из которых ArticleForm, вторая FileformSet. Данные ArticleForm сохраняются успешно каждый раз, но иногда FileformSet получает ошибку при загрузке файлов. это выглядит так, как будто один раз вы можете загрузить успешно второй раз вы можете получить эту ошибку. я также прочитал документацию, но я не понимаю ее. пожалуйста, кто-нибудь скажите мне, как я могу решить эту проблему?

ОШИБКА: save() prohibited to prevent data loss due to unsaved related object 'post'.

django = Django==3.2.6 python = Python 3.8.10

class NewsCreateView(CreateView):
    template_name = 'create.html'
    form_class = ArticleForm
    model = Article
    success_url = '/'

    def get_context_data(self, **kwargs):
        data = super(NewsCreateView, self).get_context_data(**kwargs)
        if self.request.POST:
            data['formset'] = FileFormSet(self.request.POST, self.request.FILES)
        else:
            data['formset'] = FileFormSet()
        return data

    def form_valid(self, form):
        form.instance.author = self.request.user
        context = self.get_context_data()
        formset = context['formset']
        with transaction.atomic():
            if formset.is_valid():
                formset.instance = form.instance
                formset.post = form.instance
                formset.save()
        return super(NewsCreateView, self).form_valid(form)
Вернуться на верх