From df4d622cac02fcbf98da99e62701a41a521094ca Mon Sep 17 00:00:00 2001 From: shankarj67 Date: Fri, 6 Mar 2020 10:23:52 +0530 Subject: [PATCH] Fixed #31345 -- Added BaseDatabaseIntrospection.get_relations(). --- django/db/backends/base/introspection.py | 11 +++++++++++ tests/backends/base/test_introspection.py | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/django/db/backends/base/introspection.py b/django/db/backends/base/introspection.py index d661e1fc0df..10c04abece4 100644 --- a/django/db/backends/base/introspection.py +++ b/django/db/backends/base/introspection.py @@ -140,6 +140,17 @@ class BaseDatabaseIntrospection: """ raise NotImplementedError('subclasses of BaseDatabaseIntrospection may require a get_sequences() method') + def get_relations(self, cursor, table_name): + """ + Return a dictionary of + {field_name: (field_name_other_table, other_table)} representing all + relationships to the given table. + """ + raise NotImplementedError( + 'subclasses of BaseDatabaseIntrospection may require a ' + 'get_relations() method.' + ) + def get_key_columns(self, cursor, table_name): """ Backends can override this to return a list of: diff --git a/tests/backends/base/test_introspection.py b/tests/backends/base/test_introspection.py index 5ad9c4f5e06..ac1785ec927 100644 --- a/tests/backends/base/test_introspection.py +++ b/tests/backends/base/test_introspection.py @@ -26,6 +26,11 @@ class SimpleDatabaseIntrospectionTests(SimpleTestCase): with self.assertRaisesMessage(NotImplementedError, msg): self.introspection.get_sequences(None, None) + def test_get_relations(self): + msg = self.may_require_msg % 'get_relations' + with self.assertRaisesMessage(NotImplementedError, msg): + self.introspection.get_relations(None, None) + def test_get_key_columns(self): msg = self.may_require_msg % 'get_key_columns' with self.assertRaisesMessage(NotImplementedError, msg):