Author: aaugustin Date: 2012-01-28 12:54:48 -0800 (Sat, 28 Jan 2012) New Revision: 17405
Modified: django/trunk/django/contrib/databrowse/sites.py django/trunk/docs/ref/contrib/databrowse.txt django/trunk/tests/runtests.py Log: Fixed #5968 -- Allowed (un-)registering with databrowse several models at once. Modified: django/trunk/django/contrib/databrowse/sites.py =================================================================== --- django/trunk/django/contrib/databrowse/sites.py 2012-01-28 20:37:05 UTC (rev 17404) +++ django/trunk/django/contrib/databrowse/sites.py 2012-01-28 20:54:48 UTC (rev 17405) @@ -73,7 +73,7 @@ self.registry = {} # model_class -> databrowse_class self.root_url = None - def register(self, model_or_iterable, databrowse_class=None, **options): + def register(self, *model_list, **options): """ Registers the given model(s) with the given databrowse site. @@ -84,23 +84,19 @@ If a model is already registered, this will raise AlreadyRegistered. """ - databrowse_class = databrowse_class or DefaultModelDatabrowse - if issubclass(model_or_iterable, models.Model): - model_or_iterable = [model_or_iterable] - for model in model_or_iterable: + databrowse_class = options.pop('databrowse_class', DefaultModelDatabrowse) + for model in model_list: if model in self.registry: raise AlreadyRegistered('The model %s is already registered' % model.__name__) self.registry[model] = databrowse_class - def unregister(self, model_or_iterable): + def unregister(self, *model_list): """ Unregisters the given model(s). If a model isn't already registered, this will raise NotRegistered. """ - if issubclass(model_or_iterable, models.Model): - model_or_iterable = [model_or_iterable] - for model in model_or_iterable: + for model in model_list: if model not in self.registry: raise NotRegistered('The model %s is not registered' % model.__name__) del self.registry[model] Modified: django/trunk/docs/ref/contrib/databrowse.txt =================================================================== --- django/trunk/docs/ref/contrib/databrowse.txt 2012-01-28 20:37:05 UTC (rev 17404) +++ django/trunk/docs/ref/contrib/databrowse.txt 2012-01-28 20:54:48 UTC (rev 17405) @@ -33,13 +33,18 @@ 2. Register a number of models with the Databrowse site:: from django.contrib import databrowse - from myapp.models import SomeModel, SomeOtherModel + from myapp.models import SomeModel, SomeOtherModel, YetAnotherModel databrowse.site.register(SomeModel) - databrowse.site.register(SomeOtherModel) + databrowse.site.register(SomeOtherModel, YetAnotherModel) Note that you should register the model *classes*, not instances. + .. versionchanged:: 1.4 + + Since Django 1.4, it is possible to register several models in the same + call to :func:`~databrowse.site.register`. + It doesn't matter where you put this, as long as it gets executed at some point. A good place for it is in your :doc:`URLconf file </topics/http/urls>` (``urls.py``). Modified: django/trunk/tests/runtests.py =================================================================== --- django/trunk/tests/runtests.py 2012-01-28 20:37:05 UTC (rev 17404) +++ django/trunk/tests/runtests.py 2012-01-28 20:54:48 UTC (rev 17405) @@ -4,9 +4,13 @@ import subprocess import sys import tempfile +import warnings from django import contrib +# databrowse is deprecated, but we still want to run its tests +warnings.filterwarnings('ignore', "The Databrowse contrib app is deprecated", + PendingDeprecationWarning, 'django.contrib.databrowse') CONTRIB_DIR_NAME = 'django.contrib' MODEL_TESTS_DIR_NAME = 'modeltests' @@ -34,6 +38,7 @@ 'django.contrib.comments', 'django.contrib.admin', 'django.contrib.admindocs', + 'django.contrib.databrowse', 'django.contrib.staticfiles', 'django.contrib.humanize', 'regressiontests.staticfiles_tests', -- You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-updates@googlegroups.com. To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-updates?hl=en.