diff options
| author | Adrian Holovaty <adrian@holovaty.com> | 2005-10-06 01:41:54 +0000 |
|---|---|---|
| committer | Adrian Holovaty <adrian@holovaty.com> | 2005-10-06 01:41:54 +0000 |
| commit | 8dda2aeaa39667de4dd97d50469ad6dd1075e917 (patch) | |
| tree | 1cd9252440c9cb12fb6ae7ef06c6c284e550291b | |
| parent | c3fa47edb85fa0b3d77a3ca864990d6b5dba3ff0 (diff) | |
Improved model validator to check admin.list_filter and type-check admin.list_display
git-svn-id: http://code.djangoproject.com/svn/django/trunk@784 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/core/management.py | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/django/core/management.py b/django/core/management.py index f3accd84cc..fe7fca6b17 100644 --- a/django/core/management.py +++ b/django/core/management.py @@ -549,16 +549,29 @@ def get_validation_errors(outfile): if not isinstance(opts.admin, meta.Admin): e.add(opts, '"admin" attribute, if given, must be set to a meta.Admin() instance.') else: - for fn in opts.admin.list_display: - try: - f = opts.get_field(fn) - except meta.FieldDoesNotExist: - klass = opts.get_model_module().Klass - if not hasattr(klass, fn) or not callable(getattr(klass, fn)): - e.add(opts, '"admin.list_display" refers to %r, which isn\'t a field or method.' % fn) - else: - if isinstance(f, meta.ManyToManyField): - e.add(opts, '"admin.list_display" doesn\'t support ManyToManyFields (%r).' % fn) + # list_display + if not isinstance(opts.admin.list_display, (list, tuple)): + e.add(opts, '"admin.list_display", if given, must be set to a list or tuple.') + else: + for fn in opts.admin.list_display: + try: + f = opts.get_field(fn) + except meta.FieldDoesNotExist: + klass = opts.get_model_module().Klass + if not hasattr(klass, fn) or not callable(getattr(klass, fn)): + e.add(opts, '"admin.list_display" refers to %r, which isn\'t a field or method.' % fn) + else: + if isinstance(f, meta.ManyToManyField): + e.add(opts, '"admin.list_display" doesn\'t support ManyToManyFields (%r).' % fn) + # list_filter + if not isinstance(opts.admin.list_filter, (list, tuple)): + e.add(opts, '"admin.list_filter", if given, must be set to a list or tuple.') + else: + for fn in opts.admin.list_filter: + try: + f = opts.get_field(fn) + except meta.FieldDoesNotExist: + e.add(opts, '"admin.list_filter" refers to %r, which isn\'t a field.' % fn) # Check ordering attribute. if opts.ordering: |
