diff options
| author | Jacob Kaplan-Moss <jacob@jacobian.org> | 2008-06-07 20:01:18 +0000 |
|---|---|---|
| committer | Jacob Kaplan-Moss <jacob@jacobian.org> | 2008-06-07 20:01:18 +0000 |
| commit | 50de13343b9daa9da30b9111dab2e15d8f24465d (patch) | |
| tree | 171a43bcff1a25aa834a9239dc88bd720e4f93db | |
| parent | 8a7bbc3c3426beacdb4286960fb1a731a7d88d25 (diff) | |
Fixed #7342: Ignore any Meta options starting with '_', thus making it OK for Meta to be a newstyle class. Thanks, Gulopine.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7585 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/db/models/options.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/django/db/models/options.py b/django/db/models/options.py index 5802ead081..4036bfb36e 100644 --- a/django/db/models/options.py +++ b/django/db/models/options.py @@ -56,8 +56,12 @@ class Options(object): # Next, apply any overridden values from 'class Meta'. if self.meta: meta_attrs = self.meta.__dict__.copy() - del meta_attrs['__module__'] - del meta_attrs['__doc__'] + for name in self.meta.__dict__: + # Ignore any private attributes that Django doesn't care about. + # NOTE: We can't modify a dictionary's contents while looping + # over it, so we loop over the *original* dictionary instead. + if name.startswith('_'): + del meta_attrs[name] for attr_name in DEFAULT_NAMES: if attr_name in meta_attrs: setattr(self, attr_name, meta_attrs.pop(attr_name)) |
