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 29992,Error in admin checking list_display items,Giovanni Toffoli,nobody,"I'm porting my app from Django 1.8 and 2.0.6 to **Django 2.1.3**. In the last environment, ''runserver'' emits a lot of system check issues of type **admin.E108** They refer to fields from different modules and many different classes, but all of them are ''CharField'' or ''TextField''. I see that method **_check_list_display_item** of class ''ModelAdminChecks'' in module ''check'' of ''django.contrib.admin'' has changed significantly between releases 2.0.6 and 2.1.3; in the latter, has been removed the last branch (else) of the top-level if-elif-else structure, although it was explicitly stated, in a comment inside it, that the associated path was required. I'm not able to make a complete diagnosis, but it seems that testing {{{ hasattr(model, item) }}} in general gives a different result than testing the existence of the same field with {{{ model._meta.get_field(item) }}} In fact, using the ''manage.py shell'' command, I experimentally verified such difference on a subset of the fields presenting the above mentioned problem: the ''hasattr'' test yields sometimes True and sometimes False (don't know why), while the other way of testing the existence of the field always yields a True result.",Bug,closed,contrib.admin,2.1,Release blocker,needsinfo,,toffoli@…,Unreviewed,0,0,0,0,0,0