Как удалить кнопку сохранения и продолжить редактирование в 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
кнопки или вы можете просто прокомментировать. Надеюсь, это поможет. Отметьте это правильно, если это поможет.