#25622: InlineAdmin raises 'GenericRel' object has no attribute 'get_related_field' -------------------------------+-------------------- Reporter: johnraz | Owner: nobody Type: Bug | Status: new Component: contrib.admin | Version: 1.8 Severity: Normal | Keywords: Triage Stage: Unreviewed | Has patch: 0 Easy pickings: 0 | UI/UX: 0 -------------------------------+-------------------- 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. -- Ticket URL: <https://code.djangoproject.com/ticket/25622> 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 django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/050.745f28ac9e77d378e4863b1e3cf12ac9%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.