Commit 4c96bd8f authored by Simon Charette's avatar Simon Charette
Browse files

Fixed #23329 -- Allowed inherited and m2m fields to be referenced in the admin.

Thanks to Trac alias Markush2010 and ross for the detailed reports.

Backport of 3cbb7590 from master
parent 5d647e5f
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -284,11 +284,13 @@ class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)):
            return False

        # Make sure at least one of the models registered for this site
        # references this field.
        # references this field through a FK or a M2M relationship.
        registered_models = self.admin_site._registry
        for related_object in opts.get_all_related_objects():
            if (related_object.model in registered_models and
                    field == related_object.field.rel.get_related_field()):
        for related_object in (opts.get_all_related_objects() +
                               opts.get_all_related_many_to_many_objects()):
            related_model = related_object.model
            if (any(issubclass(model, related_model) for model in registered_models) and
                    related_object.field.rel.get_related_field() == field):
                return True

        return False
+13 −0
Original line number Diff line number Diff line
===========================
Django 1.4.15 release notes
===========================

*Under development*

Django 1.4.15 fixes a regression in the 1.4.14 security release.

Bugfixes
========

* Allowed inherited and m2m fields to be referenced in the admin
  (`#22486 <http://code.djangoproject.com/ticket/23329>`_)
+13 −0
Original line number Diff line number Diff line
===========================
Django 1.5.10 release notes
===========================

*Under development*

Django 1.5.10 fixes a regression in the 1.5.9 security release.

Bugfixes
========

* Allowed inherited and m2m fields to be referenced in the admin
  (`#22486 <http://code.djangoproject.com/ticket/23329>`_)
+2 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ versions of the documentation contain the release notes for any later releases.
.. toctree::
   :maxdepth: 1

   1.5.10
   1.5.9
   1.5.8
   1.5.7
@@ -41,6 +42,7 @@ versions of the documentation contain the release notes for any later releases.
.. toctree::
   :maxdepth: 1

   1.4.15
   1.4.14
   1.4.13
   1.4.12
+4 −1
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ from .models import (Article, Chapter, Account, Media, Child, Parent, Picture,
    AdminOrderedField, AdminOrderedModelMethod, AdminOrderedAdminMethod,
    AdminOrderedCallable, Report, Color2, UnorderedObject, MainPrepopulated,
    RelatedPrepopulated, UndeletableObject, UserMessenger, Simple, Choice,
    ShortMessage, Telegram)
    ShortMessage, Telegram, ReferencedByParent, ChildOfReferer, M2MReference)


def callable_year(dt_value):
@@ -703,6 +703,9 @@ site.register(Report, ReportAdmin)
site.register(MainPrepopulated, MainPrepopulatedAdmin)
site.register(UnorderedObject, UnorderedObjectAdmin)
site.register(UndeletableObject, UndeletableObjectAdmin)
site.register(ReferencedByParent)
site.register(ChildOfReferer)
site.register(M2MReference)

# We intentionally register Promo and ChapterXtra1 but not Chapter nor ChapterXtra2.
# That way we cover all four cases:
Loading