﻿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
25622	InlineAdmin raises 'GenericRel' object has no attribute 'get_related_field'	Jonathan Liuti	Simon Charette	"I have the following setup (simplified for the sake of clarity)

{{{
# models.py
class ModelA(models.Model):
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey('content_type', 'object_id')
    uuid = models.UUIDField(default=uuid.uuid4, unique=True, db_index=True)

class ModelB(models.Model):
    model_a_fk = models.ForeignKey('ModelA', to_field='uuid')
    model_c_fk = models.ForeignKey('ModelC')

class ModelC(models.Model):
    ... # nothing fancy
}}}


{{{
#admin.py
class ModelAAdmin(admin.ModelAdmin):
    .... #nothing fancy

class InlineModelB(admin.TabularInline):
     model=ModelB
     raw_id_fields=('model_a_fk', 'model_c_fk')

class ModelBAdmin(admin.ModelAdmin):
     raw_id_fields=('model_a_fk', 'model_c_fk')

class ModelCAdmin(admin.ModelAdmin):
     inlines=(InlineModelB,)
}}}

Now, when going to the `ModelCAdmin` view, triggering the search pop-up for `ModelB.model_a_fk` field, I will get the following traceback:


{{{
  File ""/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py"", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File ""/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py"", line 616, in wrapper
    return self.admin_site.admin_view(view)(*args, **kwargs)
  File ""/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py"", line 110, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File ""/usr/local/lib/python2.7/dist-packages/django/views/decorators/cache.py"", line 57, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File ""/usr/local/lib/python2.7/dist-packages/django/contrib/admin/sites.py"", line 233, in inner
    return view(request, *args, **kwargs)
  File ""/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py"", line 34, in _wrapper
    return bound_func(*args, **kwargs)
  File ""/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py"", line 110, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File ""/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py"", line 30, in bound_func
    return func.__get__(self, type(self))(*args2, **kwargs2)
  File ""/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py"", line 1548, in changelist_view
    self.list_max_show_all, self.list_editable, self)
  File ""/usr/local/lib/python2.7/dist-packages/django/contrib/admin/views/main.py"", line 67, in __init__
    if to_field and not model_admin.to_field_allowed(request, to_field):
  File ""/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py"", line 489, in to_field_allowed
    related_object.field.rel.get_related_field() == field):
AttributeError: 'GenericRel' object has no attribute 'get_related_field'
}}}

Triggering the search pop-up for `ModelB.model_c_fk` works just fine.

It looks like https://code.djangoproject.com/ticket/23616 but in a different place.
"	Bug	closed	contrib.admin	1.8	Normal	fixed			Ready for checkin	1	0	0	0	0	0
