gpt4 book ai didi

django - 无法在 Django Admin 中隐藏 "Save and add another"按钮

转载 作者:行者123 更新时间:2023-12-03 18:41:22 27 4
gpt4 key购买 nike

当满足某些条件时,对于特定模型,我想隐藏 Django 管理员更改表单中的所有“保存”按钮。因此,我覆盖了 changeform_view相关ModelAdmin中的方法,像这样:

def changeform_view(self, request, object_id=None, form_url='', extra_context=None):
extra_context = extra_context or {}
obj = collection_management_MammalianLine.objects.get(pk=object_id)
if obj:
if not (request.user.is_superuser or request.user.groups.filter(name='Lab manager').exists() or request.user == obj.created_by):
extra_context['show_save'] = False
extra_context['show_save_and_continue'] = False
extra_context['show_save_and_add_another'] = False
else:
pass
else:
pass
return super(MammalianLinePage, self).changeform_view(request, object_id, extra_context=extra_context)

使用此代码,我可以成功隐藏“保存”和“保存并继续”按钮,但不能隐藏“保存并添加另一个”按钮。我可以看到 submit_line.html包含以下三行
{% if show_save %}<input type="submit" value="{% trans 'Save' %}" class="default" name="_save" />{% endif %}
{% if show_save_and_add_another %}<input type="submit" value="{% trans 'Save and add another' %}" name="_addanother" />{% endif %}
{% if show_save_and_continue %}<input type="submit" value="{% trans 'Save and continue editing' %}" name="_continue" />{% endif %}

我的问题是:为什么我可以隐藏“保存”和“保存并继续”按钮,而不是“保存并添加另一个”按钮?即使相关的模板标签 (show_save_and_continue) 在模板中。

最佳答案

您可以覆盖 render_change_form 中的方法型号管理员 子类。
在这个方法中对象 可用作参数,您可以检查某些条件。

class OrderAdmin(admin.ModelAdmin):

def render_change_form(self, request, context, add=False, change=False, form_url='', obj=None):
context.update({
'show_save': False,
'show_save_and_continue': False,
'show_delete': False
})
return super().render_change_form(request, context, add, change, form_url, obj)

关于django - 无法在 Django Admin 中隐藏 "Save and add another"按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49560378/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com