                  return []
              else:
                  return []
          else:
              return [
                  checks.Error(
                      "The value of '%s' refers to '%s', which is not a callable, "
 
</s> remove         else:
            try:
                model._meta.get_field(item)
            except FieldDoesNotExist:
                return [
                    # This is a deliberate repeat of E108; there's more than one path
                    # required to test this condition.
                    checks.Error(
                        "The value of '%s' refers to '%s', which is not a callable, "
                        "an attribute of '%s', or an attribute or method on '%s.%s'." % (
                            label, item, obj.__class__.__name__, model._meta.app_label, model._meta.object_name
                        ),
                        obj=obj.__class__,
                        id='admin.E108',
                    )
                ]
 </s> add  </s> remove                 try:
                    field = getattr(model, item)
                except AttributeError:
                    field = None

            if field is None:
                return [
                    checks.Error(
                        "The value of '%s' refers to '%s', which is not a "
                        "callable, an attribute of '%s', or an attribute or method on '%s.%s'." % (
                            label, item, obj.__class__.__name__, model._meta.app_label, model._meta.object_name
                        ),
                        obj=obj.__class__,
                        id='admin.E108',
                    )
                ]
            elif isinstance(field, models.ManyToManyField):
                return [
                    checks.Error(
                        "The value of '%s' must not be a ManyToManyField." % label,
                        obj=obj.__class__,
                        id='admin.E109',
                    )
                ]
            else:
 </s> add  </s> remove             # getattr(model, item) could be an X_RelatedObjectsDescriptor
 </s> add 
                if isinstance(field, models.ManyToManyField):
                    return [
                        checks.Error(
                            "The value of '%s' must not be a ManyToManyField." % label,
                            obj=obj.__class__,
                            id='admin.E109',
                        )
                    ]
                  return []
              else:
                if isinstance(field, models.ManyToManyField):
                    return [
                        checks.Error(
                            "The value of '%s' must not be a ManyToManyField." % label,
                            obj=obj.__class__,
                            id='admin.E109',
                        )
                    ]
                  return []
          else:
              return [
                  checks.Error(
                      "The value of '%s' refers to '%s', which is not a callable, "
keep add keep keep keep keep keep
 Fixed #28490 -- Removed unused code in admin.E108 check. 
django/contrib/admin/checks.py