#34508: Admin Checks Reversed FKs.( modified check_list_display function )
-----------------------------------------+------------------------
               Reporter:  sanju3110      |          Owner:  nobody
                   Type:  Uncategorized  |         Status:  new
              Component:  Uncategorized  |        Version:  4.2
               Severity:  Normal         |       Keywords:
           Triage Stage:  Unreviewed     |      Has patch:  0
    Needs documentation:  0              |    Needs tests:  0
Patch needs improvement:  0              |  Easy pickings:  0
                  UI/UX:  0              |
-----------------------------------------+------------------------
 from django.contrib.admin.checks import E109
 from django.core.checks import Error

 def check_list_display(app_configs, **kwargs):
     errors = []

     for model, model_admin in all_admins.items():
         list_display = getattr(model_admin, 'list_display', [])
         for field_name in list_display:
             try:

                 model._meta.get_field(field_name)
             except FieldDoesNotExist:
                 try:

                     related_model = getattr(model,
 field_name).related_model
                     related_field = getattr(related_model,
 model._meta.model_name.lower())
                     if not isinstance(related_field, ForeignObjectRel):
                         raise AttributeError
                 except (AttributeError, FieldDoesNotExist):
                     errors.append(Error(
                         'The value of \'list_display\' must be a list or
 tuple of field names or callables that are '
                         'valid on the model, or a string representing a
 model method. '
                         'The field name \'%s\' is not a valid field name
 on the model \'%s\'.'
                         % (field_name, model._meta.label),
                         obj=model_admin.__class__,
                         id=E109,
                     ))

     return errors

-- 
Ticket URL: <https://code.djangoproject.com/ticket/34508>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/01070187a7ccb406-685f6789-adf8-424e-97e8-ddf9ace0fb52-000000%40eu-central-1.amazonses.com.

Reply via email to