﻿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
33258	inconsistent use of () and [] for attributes in Admin class - Also class variables	Martin Massera	nobody	"In Django's Admin class, most ""lists"" are initialized as tuples `()` while two of them (`inlines` and `actions`)are initialized as lists `[]`

{{{
list_display = ('__str__',)
list_display_links = ()
list_filter = ()
...
list_editable = ()
search_fields = ()
...
inlines = []
...
actions = []
}}}

This is inconsistent. 

And also since these are declared in the class, they are shared among all instances if this value is not set. This brings the problem where you inadvertedly add a value to a list and this gets added to all Admin instances where this attribute has not been set.

ie: I wanted to add an action to an admin subclass so I did `MyAdmin.actions.append('some_action')` which added this action to all my admins who had not set a new value to `actions`. 

While lists are more semantically correct than tuples, tuples have the advantage of being immutable, so they force users to reset the value every time.

So, two solutions:

- declare all these attributes as instance variables in the constructor. Possibly setting them all as lists
- declare all these attributes as tuples, keeping them where they are
"	Bug	new	contrib.admin	3.2	Normal		Admin		Unreviewed	0	0	0	0	0	0
