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