Django管理员模型add_view:如何删除“保存并添加另一个”按钮?

重力坟墓

通过实现以下代码,我能够删除“保存并添加另一个”和“保存并继续编辑”按钮:

# At the start of my admin.py file I have:
from django.contrib.admin.templatetags.admin_modify import *
from django.contrib.admin.templatetags.admin_modify import submit_row as original_submit_row

@register.inclusion_tag('admin/submit_line.html', takes_context=True)
def submit_row(context):
    ctx = original_submit_row(context)
    ctx.update({
        'show_save_and_add_another': context.get('show_save_and_add_another', ctx['show_save_and_add_another']),
        'show_save_and_continue': context.get('show_save_and_continue', ctx['show_save_and_continue'])
        })
    return ctx

class MyModelAdmin(GuardedModelAdmin):
# Then inside MyModelAdmin I have this:
    def change_view(self, request, object_id, form_url='', extra_context=None):
        extra_context = extra_context or {}
        extra_context['show_save_and_add_another'] = False
        extra_context['show_save_and_continue'] = False
        return super(MyModelAdmin, self).change_view(request, object_id,
            form_url, extra_context=extra_context)

当我使用change_view时,这很好用,但是当我添加模型的新实例时,按钮会重新出现。我尝试了以下方法:

    def add_view(self, request, form_url='', extra_context=None):
        extra_context = extra_context or {}
        extra_context['show_save_and_add_another'] = False
        extra_context['show_save_and_continue'] = False
        return super(MyModelAdmin, self).add_view(self, request, form_url='', extra_context=extra_context)

但这给了我一个奇怪的MissingAtrribute错误-这是回溯:

Traceback:
File "/home/username/.virtualenvs/MyProject/lib/python3.3/site-packages/django/core/handlers/base.py" in get_response
  114.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/username/.virtualenvs/MyProject/lib/python3.3/site-packages/django/contrib/admin/options.py" in wrapper
  432.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File "/home/username/.virtualenvs/MyProject/lib/python3.3/site-packages/django/utils/decorators.py" in _wrapped_view
  99.                     response = view_func(request, *args, **kwargs)
File "/home/username/.virtualenvs/MyProject/lib/python3.3/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  52.         response = view_func(request, *args, **kwargs)
File "/home/username/.virtualenvs/MyProject/lib/python3.3/site-packages/django/contrib/admin/sites.py" in inner
  198.             return view(request, *args, **kwargs)
File "/home/username/Development/MyProject/webapp/MyModel/admin.py" in add_view
  153.         return super(MyModelAdmin, self).add_view(self, request, form_url='', extra_context=extra_context)
File "/home/username/.virtualenvs/MyProject/lib/python3.3/site-packages/django/utils/decorators.py" in _wrapper
  29.             return bound_func(*args, **kwargs)
File "/home/username/.virtualenvs/MyProject/lib/python3.3/site-packages/django/utils/decorators.py" in _wrapped_view
  95.                     result = middleware.process_view(request, view_func, args, kwargs)
File "/home/username/.virtualenvs/MyProject/lib/python3.3/site-packages/django/middleware/csrf.py" in process_view
  111.                 request.COOKIES[settings.CSRF_COOKIE_NAME])

Exception Type: AttributeError at /admin/MyModel/ModelInstance/add/
Exception Value: 'MyModelAdmin' object has no attribute 'COOKIES'

我正在使用django-guardian,想知道这是否导致我的问题吗?有谁知道在添加新的模型实例时如何摆脱模板的submit_line部分中的这些烦人的按钮?

拉德泰克

如果您想简单地隐藏这些按钮是出于装饰目的,那么您也可以使用CSS,因为它可以通过检查css使其重新启用,所以它并不是最好的方法,它当然很简单,而且粒度还很细,只能将它们隐藏在某些模型上管理员。

admin.py:

class MyModelAdmin(admin.ModelAdmin)

    ....

    class Media:
        #js = ('' )  # Can include js if needed
        css = {'all': ('my_admin/css/my_model.css', )}  

my_model.css位于上面路径中的静态文件文件夹中。

my_model.css:

/* Optionally make the continue and save button look like primary */
input[name="_continue"]{
    border: 2px solid #5b80b2;
    background: #7CA0C7;
    color: white;
}

/* Hide the "Delete", "Add Another" and "Save" buttons, customize this to what you need  */
.deletelink, input[name="_addanother"], input[name="_save"]{
    display: none;
}

这些按钮的django版本之间的类和名称可能会更改,我现在使用的是Django 1.6.6,但我认为它们最近没有更改。如果您希望此方法在整个管理站点上都有效,则可以将admin / base_site.html默认模板复制到您的静态目录中,并覆盖“ extrahead”块以包含此样式。参见base_site.html

希望CSS方法有帮助:)它当然不会对您造成任何错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django管理员模型add_view:如何删除“保存并添加另一个”按钮?

来自分类Dev

Django-在管理员保存中更新另一个模型

来自分类Dev

Django在管理员中针对另一个模型字段进行验证

来自分类Dev

与Django管理员相关的Field在另一个模型上

来自分类Dev

Django在管理员中针对另一个模型字段进行验证

来自分类Dev

从Django中的另一个管理员调用管理员功能

来自分类Dev

在Django中(“非管理员”)“保存并添加另一个”:提交然后预先填充表单的一个字段

来自分类Dev

SilverStripe-在为另一个管理员模型提供新条目时更新一个管理员模型

来自分类Dev

如何根据Django管理员中另一个选择标签的选项更改选择标签选项?

来自分类Dev

仅允许在Django模型和管理员中填充一个字段或另一个字段

来自分类Dev

如何使另一个用户成为Microsoft Surface上的管理员?

来自分类Dev

如何实现管理员临时成为另一个用户?

来自分类Dev

以另一个用户(管理员)身份运行任务管理器

来自分类Dev

Java以管理员身份打开另一个应用程序

来自分类Dev

通过另一个进程以管理员身份杀死进程

来自分类Dev

以管理员身份,代表另一个用户获取访问令牌

来自分类Dev

从magento中的一个管理员重定向到另一个管理员中的功能

来自分类Dev

在Django中,如何在保存之前将另一个实例添加到内联模型中?

来自分类Dev

我应该为管理员创建另一个模型吗?还是在Ruby on Rails中做到这一点的最佳方法是什么?

来自分类Dev

如何修复 django 管理员“添加”按钮

来自分类Dev

如何删除两个管理员帐户中的一个?

来自分类Dev

Django不同的管理员一个面板

来自分类Dev

Django不同的管理员一个面板

来自分类Dev

如何添加一个分析标签的数据信息与Java火力地堡管理员SDK?

来自分类Dev

如何在另一个用户内部运行sudo命令,或向用户授予与管理员相同的特权?

来自分类Dev

在Windows中:如何以编程方式在另一个用户上下文下以管理员模式启动进程?

来自分类Dev

Microsoft-Graph-作为Azure AD管理员,您如何获取另一个用户的有效access_token

来自分类Dev

如何在另一个用户内部运行sudo命令,或向用户授予与管理员相同的特权?

来自分类Dev

如何从ASP.NET MVC 5(身份)中的另一个(管理员角色)帐户创建新的用户帐户

Related 相关文章

  1. 1

    Django管理员模型add_view:如何删除“保存并添加另一个”按钮?

  2. 2

    Django-在管理员保存中更新另一个模型

  3. 3

    Django在管理员中针对另一个模型字段进行验证

  4. 4

    与Django管理员相关的Field在另一个模型上

  5. 5

    Django在管理员中针对另一个模型字段进行验证

  6. 6

    从Django中的另一个管理员调用管理员功能

  7. 7

    在Django中(“非管理员”)“保存并添加另一个”:提交然后预先填充表单的一个字段

  8. 8

    SilverStripe-在为另一个管理员模型提供新条目时更新一个管理员模型

  9. 9

    如何根据Django管理员中另一个选择标签的选项更改选择标签选项?

  10. 10

    仅允许在Django模型和管理员中填充一个字段或另一个字段

  11. 11

    如何使另一个用户成为Microsoft Surface上的管理员?

  12. 12

    如何实现管理员临时成为另一个用户?

  13. 13

    以另一个用户(管理员)身份运行任务管理器

  14. 14

    Java以管理员身份打开另一个应用程序

  15. 15

    通过另一个进程以管理员身份杀死进程

  16. 16

    以管理员身份,代表另一个用户获取访问令牌

  17. 17

    从magento中的一个管理员重定向到另一个管理员中的功能

  18. 18

    在Django中,如何在保存之前将另一个实例添加到内联模型中?

  19. 19

    我应该为管理员创建另一个模型吗?还是在Ruby on Rails中做到这一点的最佳方法是什么?

  20. 20

    如何修复 django 管理员“添加”按钮

  21. 21

    如何删除两个管理员帐户中的一个?

  22. 22

    Django不同的管理员一个面板

  23. 23

    Django不同的管理员一个面板

  24. 24

    如何添加一个分析标签的数据信息与Java火力地堡管理员SDK?

  25. 25

    如何在另一个用户内部运行sudo命令,或向用户授予与管理员相同的特权?

  26. 26

    在Windows中:如何以编程方式在另一个用户上下文下以管理员模式启动进程?

  27. 27

    Microsoft-Graph-作为Azure AD管理员,您如何获取另一个用户的有效access_token

  28. 28

    如何在另一个用户内部运行sudo命令,或向用户授予与管理员相同的特权?

  29. 29

    如何从ASP.NET MVC 5(身份)中的另一个(管理员角色)帐户创建新的用户帐户

热门标签

归档