#23616: 'GenericRel' object has no attribute 'get_related_field'
-------------------------------------+-------------------------------------
     Reporter:  ranjur               |      Owner:  nobody
         Type:  Bug                  |     Status:  new
    Component:                       |    Version:  1.7
  contrib.contenttypes               |   Keywords:  GenericRel, django 1.7,
     Severity:  Normal               |  admin, get_related_field,
 Triage Stage:  Unreviewed           |  GenericRelation
Easy pickings:  0                    |  Has patch:  0
                                     |      UI/UX:  0
-------------------------------------+-------------------------------------
 I have a model:
 #models.py
 class TaggedItem(models.Model):
     tag = models.SlugField()
     content_type = models.ForeignKey(ContentType)
     object_id = models.PositiveIntegerField()
     content_object = GenericForeignKey('content_type', 'object_id')

     def __str__(self):              # __unicode__ on Python 2
         return self.tag

 And model with GenericRelation
 class Bookmark(models.Model):
     url = models.URLField()
     tags = GenericRelation(TaggedItem)


 #admin.py
 class BookmarkAdmin(admin.ModelAdmin):
     list_filter = ('tags__tag')

 admin.site.register(models.Bookmark, BookmarkAdmin)

 It will list all the `tag` in the filter, but when I try to filter it
 throws error `'GenericRel' object has no attribute 'get_related_field'`

 Full stack:
 {{{
 AttributeError at /admin/app/bookmark
 'GenericRel' object has no attribute 'get_related_field'
 Request Method: GET
 Request URL:
 http://127.0.0.1:8000/admin/app/bookmark/?q=&tags__tag__id__exact=1
 Django Version: 1.7
 Exception Type: AttributeError
 Exception Value:
 'GenericRel' object has no attribute 'get_related_field'
 Exception Location:     /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/contrib/admin/options.py in lookup_allowed, line 416
 Python Executable:      /home/user/virtual/test/bin/python
 Python Version: 2.7.6
 Python Path:
 ['/home/user/projects/ptest',
  '/home/user/virtual/test/local/lib/python2.7/site-
 packages/Pillow-2.5.1-py2.7-linux-x86_64.egg',
  '/home/user/virtual/test/src/cmsplugin-bootstrap-carousel',
  '/home/user/virtual/test/src/cmsplugin-contact',
  '/home/user/virtual/test/src/django-faq',
  '/home/user/virtual/test/src/python-varnish',
  '/home/user/virtual/test/src/cmsplugin-text-ng',
  '/home/user/virtual/test/src/django-balancer',
  '/home/user/virtual/test/src/django-nose',
  '/home/user/virtual/test/lib/python2.7',
  '/home/user/virtual/test/lib/python2.7/plat-x86_64-linux-gnu',
  '/home/user/virtual/test/lib/python2.7/lib-tk',
  '/home/user/virtual/test/lib/python2.7/lib-old',
  '/home/user/virtual/test/lib/python2.7/lib-dynload',
  '/usr/lib/python2.7',
  '/usr/lib/python2.7/plat-x86_64-linux-gnu',
  '/usr/lib/python2.7/lib-tk',
  '/home/user/virtual/test/local/lib/python2.7/site-packages',
  '/home/user/virtual/test/local/lib/python2.7/site-packages/PIL',
  '/home/user/virtual/test/local/lib/python2.7/site-
 packages/newrelic-2.28.0.26',
  '/home/user/projects/y1/test']
 Server time:    Wed, 8 Oct 2014 13:28:38 +0800
 Traceback Switch to copy-and-paste view

 /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/core/handlers/base.py in get_response
                     response = wrapped_callback(request, *callback_args,
 **callback_kwargs) ...
 ▶ Local vars
 /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/contrib/admin/options.py in wrapper
                 return self.admin_site.admin_view(view)(*args, **kwargs)
 ...
 ▶ Local vars
 /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/utils/decorators.py in _wrapped_view
                     response = view_func(request, *args, **kwargs) ...
 ▶ Local vars
 /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/views/decorators/cache.py in _wrapped_view_func
         response = view_func(request, *args, **kwargs) ...
 ▶ Local vars
 /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/contrib/admin/sites.py in inner
             return view(request, *args, **kwargs) ...
 ▶ Local vars
 /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/utils/decorators.py in _wrapper
             return bound_func(*args, **kwargs) ...
 ▶ Local vars
 /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/utils/decorators.py in _wrapped_view
                     response = view_func(request, *args, **kwargs) ...
 ▶ Local vars
 /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/utils/decorators.py in bound_func
                 return func.__get__(self, type(self))(*args2, **kwargs2)
 ...
 ▶ Local vars
 /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/contrib/admin/options.py in changelist_view
                 self.list_max_show_all, self.list_editable, self) ...
 ▶ Local vars
 /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/contrib/admin/views/main.py in __init__
         self.queryset = self.get_queryset(request) ...
 ▶ Local vars
 /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/contrib/admin/views/main.py in get_queryset
          filters_use_distinct) = self.get_filters(request) ...
 ▶ Local vars
 /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/contrib/admin/views/main.py in get_filters
             if not self.model_admin.lookup_allowed(key, value): ...
 ▶ Local vars
 /home/user/virtual/test/local/lib/python2.7/site-
 packages/django/contrib/admin/options.py in lookup_allowed
                 rel_name = field.rel.get_related_field().name ...
 ▶ Local vars

 }}}

--
Ticket URL: <https://code.djangoproject.com/ticket/23616>
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.143ff9896f4efd1a4378bb547b08c025%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to