From 93055ee2e0b531ab2390d39402f0d6bbd0b08874 Mon Sep 17 00:00:00 2001 From: Stephen Burrows Date: Tue, 12 Apr 2011 16:21:44 -0400 Subject: [PATCH] Added crude double-import detection to search registration. Added Django 1.2 fallback to SlugMultipleChoiceField formfield method. --- contrib/sobol/search.py | 5 +++-- models/fields/__init__.py | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/contrib/sobol/search.py b/contrib/sobol/search.py index 36c2b5d..843af81 100644 --- a/contrib/sobol/search.py +++ b/contrib/sobol/search.py @@ -42,8 +42,9 @@ class SearchRegistry(object): def register(self, search, slug=None): slug = slug or search.slug if slug in self._registry: - if self._registry[slug] != search: - raise RegistrationError("A different search is already registered as `%s`") + registered = self._registry[slug] + if registered.__module__ != search.__module__: + raise RegistrationError("A different search is already registered as `%s`" % slug) else: self._registry[slug] = search diff --git a/models/fields/__init__.py b/models/fields/__init__.py index 1f9603e..d900e31 100644 --- a/models/fields/__init__.py +++ b/models/fields/__init__.py @@ -109,7 +109,8 @@ class SlugMultipleChoiceField(models.Field): del kwargs[k] defaults.update(kwargs) - form_class = forms.TypedMultipleChoiceField + # Django 1.2 does not supply MultipleChoiceField + form_class = getattr(forms, 'TypedMultipleChoiceField', forms.MultipleChoiceField) return form_class(**defaults) def validate(self, value, model_instance): -- 2.20.1