fix formsets?
This commit is contained in:
+26
-13
@@ -16,7 +16,7 @@ from django.urls import reverse_lazy, reverse
|
||||
from django.http import Http404, JsonResponse
|
||||
from django.http import HttpResponseRedirect, HttpResponse
|
||||
|
||||
from .forms import RapidForm, ImageFormSet, NoteForm, RegionForm, AbnormalityForm, ExaminationForm
|
||||
from .forms import RapidForm, ImageFormSet, NoteForm, RegionForm, AbnormalityForm, ExaminationForm, AnswerFormSet, AnswerUpdateFormSet
|
||||
from .models import Rapid, Note, Abnormality, Region, Examination
|
||||
from .tables import RapidTable
|
||||
from .filters import RapidFilter
|
||||
@@ -201,23 +201,28 @@ def rapid_clone(request, pk):
|
||||
|
||||
form = RapidForm(request.POST or None, instance=new_item)
|
||||
|
||||
formset = ImageFormSet()
|
||||
image_formset = ImageFormSet()
|
||||
answer_formset = AnswerFormSet()
|
||||
|
||||
if form.is_valid():
|
||||
form.instance.author.add(request.user.id)
|
||||
|
||||
#logger.debug(formset.is_valid())
|
||||
if formset.is_valid():
|
||||
if image_formset.is_valid() and answer_formset.is_valid():
|
||||
response = super().form_valid(form)
|
||||
formset.instance = obj
|
||||
formset.save()
|
||||
image_formset.instance = obj
|
||||
image_formset.save()
|
||||
|
||||
answer_formset.instance = obj
|
||||
answer_formset.save()
|
||||
return response
|
||||
else:
|
||||
return super().form_invalid(form)
|
||||
|
||||
context = {
|
||||
"form": form,
|
||||
"image_formset": formset
|
||||
"image_formset": image_formset
|
||||
"answer_formset": answer_formset
|
||||
#other context
|
||||
}
|
||||
|
||||
@@ -245,11 +250,14 @@ class RapidCreateBase(LoginRequiredMixin, CreateView):
|
||||
form.instance.author.add(self.request.user.id)
|
||||
|
||||
context = self.get_context_data(form=form)
|
||||
formset = context['image_formset']
|
||||
if formset.is_valid():
|
||||
image_formset = context['image_formset']
|
||||
answer_formset = context['answer_formset']
|
||||
if image_formset.is_valid() and answer_formset.is_valid():
|
||||
response = super().form_valid(form)
|
||||
formset.instance = self.object
|
||||
formset.save()
|
||||
image_formset.instance = self.object
|
||||
image_formset.save()
|
||||
answer_formset.instance = self.object
|
||||
answer_formset.save()
|
||||
# If the normal submit button is pressed we save as normal
|
||||
if "submit" in self.request.POST:
|
||||
return response
|
||||
@@ -303,8 +311,10 @@ class RapidUpdate(LoginRequiredMixin, AuthorOrCheckerRequiredMixin,
|
||||
self.request.FILES,
|
||||
instance=self.object)
|
||||
context['image_formset'].full_clean()
|
||||
context['answer_formset'] = AnswerFormSet(instance=self.object)
|
||||
else:
|
||||
context['image_formset'] = ImageFormSet(instance=self.object)
|
||||
context['answer_formset'] = AnswerFormSet(instance=self.object)
|
||||
return context
|
||||
|
||||
def form_valid(self, form):
|
||||
@@ -315,12 +325,15 @@ class RapidUpdate(LoginRequiredMixin, AuthorOrCheckerRequiredMixin,
|
||||
form.instance.author.add(self.request.user.id)
|
||||
|
||||
context = self.get_context_data(form=form)
|
||||
formset = context['image_formset']
|
||||
image_formset = context['image_formset']
|
||||
answer_formset = context['image_formset']
|
||||
#logger.debug(formset.is_valid())
|
||||
if formset.is_valid():
|
||||
response = super().form_valid(form)
|
||||
formset.instance = self.object
|
||||
formset.save()
|
||||
image_formset.instance = self.object
|
||||
image_formset.save()
|
||||
answer_formset.instance = self.object
|
||||
answer_formset.save()
|
||||
return response
|
||||
else:
|
||||
return super().form_invalid(form)
|
||||
|
||||
Reference in New Issue
Block a user