#28262: Using lookup with autocreated fields crashes django admin
-------------------------------------+-------------------------------------
               Reporter:  Michal     |          Owner:  nobody
  Dabski                             |
                   Type:  Bug        |         Status:  new
              Component:             |        Version:  1.11
  Uncategorized                      |       Keywords:
               Severity:  Normal     |  admin,lookup_allowed
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 Consider the following models:

 {{{
 class AuditSession(Model):
     auditor = models.ForeignKey(User)

 class Institution(BaseModel):
     name = models.CharField(max_length=100)

 class Auditor(BaseModel):
     user = models.OneToOneField(User)
     institution = models.ForeignKey(Institution, null=True, blank=True)
 }}}

 And the following filter in audit session admin:
 {{{
 class AuditSessionAdmin(ModelAdmin):
     list_filter = (
         ('auditor__auditor__institution'),
     )
 }}}

 As of Django version 1.9 up to the latest release 1.11.1, the above lookup
 will raise server error when used by raising DisallowedModelAdminLookup
 (Filtering by auditor__auditor__institution__id__exact not allowed). This
 is because the lookup uses reverse relation between User and Auditor
 model.

 This lookup passes checks and only crashes when user tries to use the
 filter. I could not find the reasoning behind the implementation of
 lookup_allowed and why it would forbid using reverse relations. Nor could
 I find any documentation for this change in 1.9 release notes.
 I have recently upgraded from django 1.8 where this lookup worked
 perfectly fine.

--
Ticket URL: <https://code.djangoproject.com/ticket/28262>
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 post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/049.fed713d773173c2cadf66ef7952b4875%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to