Почему 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)