summaryrefslogtreecommitdiff
path: root/django/db
diff options
context:
space:
mode:
Diffstat (limited to 'django/db')
-rw-r--r--django/db/models/fields/related.py2
-rw-r--r--django/db/models/options.py4
2 files changed, 6 insertions, 0 deletions
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index 6e18f6d470..1318706040 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -901,6 +901,8 @@ class ForeignKey(RelatedField, Field):
# don't get a related descriptor.
if not self.rel.is_hidden():
setattr(cls, related.get_accessor_name(), ForeignRelatedObjectsDescriptor(related))
+ if self.rel.limit_choices_to:
+ cls._meta.related_fkey_lookups.append(self.rel.limit_choices_to)
if self.rel.field_name is None:
self.rel.field_name = cls._meta.pk.name
diff --git a/django/db/models/options.py b/django/db/models/options.py
index 882d2f5709..2f64c56b00 100644
--- a/django/db/models/options.py
+++ b/django/db/models/options.py
@@ -55,6 +55,10 @@ class Options(object):
self.abstract_managers = []
self.concrete_managers = []
+ # List of all lookups defined in ForeignKey 'limit_choices_to' options
+ # from *other* models. Needed for some admin checks. Internal use only.
+ self.related_fkey_lookups = []
+
def contribute_to_class(self, cls, name):
from django.db import connection
from django.db.backends.util import truncate_name