From 271fdab8b78af558238df51c64b4d1c8dd0792bb Mon Sep 17 00:00:00 2001 From: Taoup Date: Wed, 19 Feb 2020 19:14:54 +0800 Subject: Fixed #31286 -- Made database specific fields checks databases aware. Follow up to 0b83c8cc4db95812f1e15ca19d78614e94cf38dd. --- django/db/models/fields/__init__.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'django') diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 6bd95f542c..caa03665ea 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -335,12 +335,15 @@ class Field(RegisterLookupMixin): else: return [] - def _check_backend_specific_checks(self, **kwargs): + def _check_backend_specific_checks(self, databases=None, **kwargs): + if databases is None: + return [] app_label = self.model._meta.app_label - for db in connections: - if router.allow_migrate(db, app_label, model_name=self.model._meta.model_name): - return connections[db].validation.check_field(self, **kwargs) - return [] + errors = [] + for alias in databases: + if router.allow_migrate(alias, app_label, model_name=self.model._meta.model_name): + errors.extend(connections[alias].validation.check_field(self, **kwargs)) + return errors def _check_validators(self): errors = [] -- cgit v1.3