diff --git a/django/contrib/admin/templatetags/admin_modify.py b/django/contrib/admin/templatetags/admin_modify.py index 8d5cbb24a8..02d717e7d6 100644 --- a/django/contrib/admin/templatetags/admin_modify.py +++ b/django/contrib/admin/templatetags/admin_modify.py @@ -32,7 +32,7 @@ def submit_row(context): 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_and_continue': not is_popup, + 'show_save_and_continue': not is_popup and context['has_change_permission'], 'show_save': True } submit_row = register.inclusion_tag('admin/submit_line', takes_context=True)(submit_row) diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index 79894d4de0..c9fc014cc4 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -201,6 +201,7 @@ def render_change_form(model, manipulator, context, add=False, change=False, for 'add': add, 'change': change, 'has_delete_permission': context['perms'][app_label][opts.get_delete_permission()], + 'has_change_permission': context['perms'][app_label][opts.get_change_permission()], 'has_file_field': opts.has_field_type(models.FileField), 'has_absolute_url': hasattr(model, 'get_absolute_url'), 'auto_populated_fields': auto_populated_fields,