﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
24008	ValidationError crashes if initialised with a list that includes a ValidationError instance initialised with a dict.	Sean	Andrey Maslov	"According to the documentation, ValidationError can be initialised with a list of ValidationError instances. However, if the list includes a ValidationError that was initialised with a dictionary then it crashes with the following error: 'ValidationError' object has no attribute 'error_list'. 

This bug would occur if someone wanted to raise a ValidationError with a set of field errors together with one or more non-field errors for example.

For example:
{{{
>>> from django.core.exceptions import ValidationError
>>> ValidationError([ValidationError({'age', 'age cannot be negative'}), ValidationError('Some other error')])
}}}
The problem is caused because when a ValidationError instance is initialised with a dictionary, its error_list attribute is not set (instead error_dict is set) but a ValidationError that is initialised with a list tries to compile a flattened list of all errors using this attribute from each list element.  Either ValidationError should be modified to accept a mixture of field and non-field errors (appears to me to be the best solution) or the documentation and error message should be changed to make usage clear.

Related to https://code.djangoproject.com/ticket/23976"	Bug	closed	Core (Other)	1.7	Normal	fixed			Ready for checkin	1	0	0	0	0	0
