odevzdavatko: zobrazení chyby při nevalidním formsetu
This commit is contained in:
parent
f8667b8247
commit
e856859ffb
1 changed files with 17 additions and 23 deletions
|
@ -246,32 +246,26 @@ def hodnoceniReseniView(request, pk, *args, **kwargs):
|
|||
formset = f.OhodnoceniReseniFormSet(request.POST)
|
||||
poznamka_form = f.PoznamkaReseniForm(request.POST, instance=reseni)
|
||||
# TODO: Napsat validaci formuláře a formsetu
|
||||
# TODO: Implementovat větev, kdy formulář validní není.
|
||||
if formset.is_valid() and poznamka_form.is_valid():
|
||||
with transaction.atomic():
|
||||
# Poznámka je jednoduchá na zpracování:
|
||||
poznamka_form.save()
|
||||
if not (formset.is_valid() and poznamka_form.is_valid()):
|
||||
raise ValueError(formset.errors, poznamka_form.errors)
|
||||
|
||||
# Smažeme všechna dosavadní hodnocení tohoto řešení
|
||||
qs = m.Hodnoceni.objects.filter(reseni=reseni)
|
||||
logger.info(f"Will delete {qs.count()} objects: {qs}")
|
||||
qs.delete()
|
||||
|
||||
# Vyrobíme nová podle formsetu
|
||||
for form in formset:
|
||||
problem = form.cleaned_data['problem']
|
||||
body = form.cleaned_data['body']
|
||||
deadline_body = form.cleaned_data['deadline_body']
|
||||
feedback = form.cleaned_data['feedback']
|
||||
hodnoceni = m.Hodnoceni(
|
||||
problem=problem,
|
||||
body=body,
|
||||
deadline_body=deadline_body,
|
||||
feedback=feedback,
|
||||
with transaction.atomic():
|
||||
# Poznámka je jednoduchá na zpracování:
|
||||
poznamka_form.save()
|
||||
|
||||
# Smažeme všechna dosavadní hodnocení tohoto řešení
|
||||
qs = m.Hodnoceni.objects.filter(reseni=reseni)
|
||||
logger.info(f"Will delete {qs.count()} objects: {qs}")
|
||||
qs.delete()
|
||||
|
||||
# Vyrobíme nová podle formsetu
|
||||
for form in formset:
|
||||
hodnoceni = m.Hodnoceni(
|
||||
reseni=reseni,
|
||||
**form.cleaned_data,
|
||||
)
|
||||
logger.info(f"Creating Hodnoceni: {hodnoceni}")
|
||||
hodnoceni.save()
|
||||
logger.info(f"Creating Hodnoceni: {hodnoceni}")
|
||||
hodnoceni.save()
|
||||
|
||||
return redirect(success_url)
|
||||
|
||||
|
|
Loading…
Reference in a new issue