Как удалить кнопку сохранения и продолжить редактирование в django-admin в django 1.9, чтобы ее не было?

Я испробовал все решения, перечисленные в Администраторе Django, как я могу скрыть кнопки "Сохранить и продолжить" и "Сохранить и добавить еще" на администраторе модели? и это сообщение было несколько лет назад, и я не могу найти ничего о том, как отключить эти кнопки. Из-за пользовательского сохранения кнопка "Сохранить и продолжить редактирование" вызывает ошибку. Есть ли способ отключить его в текущей версии django? Ограничения: - Невозможно поставить приложение перед django.contrib.admin - мне нужно отключить его только для одной формы. - У меня есть пользовательская форма для создания, и у нее есть собственный метод сохранения (это создание учетной записи)

3 ответа

Решение

Вы можете просто скрыть кнопку (базовая функциональность все еще там, но кнопка не будет видна).

Это должно работать

from django.contrib import admin

class MyModelAdmin(admin.ModelAdmin):
    ...

    class Media:
        css = {
            'all': ('some/path/to/css/disable_save_and_continuue_editing_button.css'
        }

disable_save_and_continuue_editing_button.css

input[name="_continue"] {
  display: none;
}

Чтобы удалить кнопку «Сохранить и продолжить редактирование» , установите для «False» значение «extra_context['show_save_and_continue']» в «changeform_view()», как показано ниже:

      # "admin.py"

from django.contrib import admin
from .models import MyModel

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    def changeform_view(self, request, object_id=None, form_url='', extra_context=None):
        extra_context = extra_context or {}

        extra_context['show_save_and_continue'] = False # Here
        # extra_context['show_save'] = False
        # extra_context['show_delete'] = False

        return super().changeform_view(request, object_id, form_url, extra_context)

Вы также можете удалить кнопку «Сохранить и продолжить редактирование» , установив для «False» значение «show_save_and_continue» в «context.update()» в «render_change_form()» , как показано ниже:

      # "admin.py"

from django.contrib import admin
from .models import MyModel

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    def render_change_form(self, request, context, add=False, change=False, form_url='', obj=None):
        context.update({
            'show_save_and_continue': False, # Here
            # 'show_save': False,
            # 'show_delete': False,
        })
        return super().render_change_form(request, context, add, change, form_url, obj)

Так что я понял это. Если вам нужно поиграть с этими кнопками, скопируйте код submit_line.html а затем переопределить его на ваш templates/admin/submit_line.html и иди в свой setting.py а затем перейти к

   TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))),"Project name or app name depends where you put your templates folder","templates")],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

И в твоем submit_line.html код

    {% load i18n admin_urls %}
<div class="submit-row">
{% if show_save %}<input type="submit" value="{% trans 'Save' %}" class="default" name="_save">{% endif %}
{% if show_delete_link %}<p class="deletelink-box"><a href="{% url opts|admin_urlname:'delete' original.pk|admin_urlquote %}"     class="deletelink">{% trans "Delete" %}</a></p>{% endif %}
{% if show_save_as_new %}<input type="submit" value="{% trans 'Save as new' %}" name="_saveasnew" {{ onclick_attrib }}/>{%endif%}
{% if show_save_and_add_another %}<input type="submit" value="{% trans 'Save and add another' %}" name="_addanother" {{ onclick_attrib }}/>{% endif %}
{% if show_save_and_continue %}<input type="submit" value="{% trans 'Save and continue editing' %}" name="_continue" {{ onclick_attrib }}/>{% endif %}
</div>

Просто удали это save а также continue кнопки или вы можете просто прокомментировать. Надеюсь, это поможет. Отметьте это правильно, если это поможет.

Другие вопросы по тегам