summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Kaplan-Moss <jacob@jacobian.org>2008-06-07 20:01:18 +0000
committerJacob Kaplan-Moss <jacob@jacobian.org>2008-06-07 20:01:18 +0000
commit50de13343b9daa9da30b9111dab2e15d8f24465d (patch)
tree171a43bcff1a25aa834a9239dc88bd720e4f93db
parent8a7bbc3c3426beacdb4286960fb1a731a7d88d25 (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.py8
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))