def edit_news(request, news_story_id): if not request.user.has_perm('homepage.change_newsstory'): return redirect('home') news_story = get_object_or_404(NewsStory, id=news_story_id) if request.method == 'POST': news_form_data = request.POST image_form = NewsImageForm(request.POST, request.FILES, prefix='news_image') if image_form.is_valid() and image_form.cleaned_data['image']: news_image = image_form.save() news_form_data = news_form_data.copy() news_form_data.update(image=news_image.id) news_story.image = news_image form = NewsStoryForm(news_form_data, instance=news_story) if form.is_valid(): form.save() messages.success(request, "News story updated") return redirect('home') else: form = NewsStoryForm(instance=news_story) return render(request, 'homepage/news/edit_news.html', { 'news_story': news_story, 'form': form, 'image_form': NewsImageForm(prefix='news_image') })