diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 035c3684d7..1788a712d8 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -37,6 +37,7 @@ class ModelAdmin(object): list_display_links = () list_filter = () date_hierarchy = None + save_as = False def __init__(self, model): self.model = model diff --git a/django/contrib/admin/templatetags/admin_modify.py b/django/contrib/admin/templatetags/admin_modify.py index fcb5876b0c..5c9009ea4e 100644 --- a/django/contrib/admin/templatetags/admin_modify.py +++ b/django/contrib/admin/templatetags/admin_modify.py @@ -41,8 +41,8 @@ def submit_row(context): and 'onclick="submitOrderForm();"' or ''), 'show_delete_link': (not is_popup and context['has_delete_permission'] and (change or context['show_delete'])), - 'show_save_as_new': not is_popup and change and opts.admin.save_as, - 'show_save_and_add_another': not is_popup and (not opts.admin.save_as or context['add']), + 'show_save_as_new': not is_popup and change and opts.ModelAdmin.save_as, + 'show_save_and_add_another': not is_popup and (not opts.ModelAdmin.save_as or context['add']), 'show_save_and_continue': not is_popup and context['has_change_permission'], 'show_save': True } diff --git a/django/db/models/base.py b/django/db/models/base.py index bcdc1185a0..a9c1f96e0a 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -137,7 +137,7 @@ class Model(object): # of ModelAdmin. cls._meta.ModelAdmin = type('ModelAdmin', (value, ModelAdmin), {}) # This AdminOptions stuff is legacy and will eventually be removed. - value = AdminOptions(**dict([(k, v) for k, v in value.__dict__.items() if not k.startswith('_') and k not in ('list_display', 'list_display_links', 'list_filter', 'date_hierarchy')])) + value = AdminOptions(**dict([(k, v) for k, v in value.__dict__.items() if not k.startswith('_') and k not in ('list_display', 'list_display_links', 'list_filter', 'date_hierarchy', 'save_as')])) value.contribute_to_class(cls, name) elif hasattr(value, 'contribute_to_class'): value.contribute_to_class(cls, name) diff --git a/django/db/models/options.py b/django/db/models/options.py index ae26e5f009..a5d2472b8e 100644 --- a/django/db/models/options.py +++ b/django/db/models/options.py @@ -200,11 +200,11 @@ class Options(object): class AdminOptions(object): def __init__(self, fields=None, js=None, - save_as=False, ordering=None, search_fields=None, + ordering=None, search_fields=None, save_on_top=False, list_select_related=False, manager=None, list_per_page=100): self.fields = fields self.js = js or [] - self.save_as, self.ordering = save_as, ordering + self.ordering = ordering self.search_fields = search_fields or [] self.save_on_top = save_on_top self.list_select_related = list_select_related