Django Grappelli 用户组条件仪表板
Posted
技术标签:
【中文标题】Django Grappelli 用户组条件仪表板【英文标题】:Django Grappelli usergroup conditional dashboard 【发布时间】:2018-07-25 13:13:26 【问题描述】:在 Django(1.11.10) 中使用 Grappelli(2.11.1)。 我制作了小型自定义仪表板,现在寻找一些方法来改变元素的外观。 特别是我需要显示一些 url 元素
self.children.append(modules.LinkList(
_('e-mail'),
column=2,
css_class=('grp-collapse grp-closed'),
children=[
'title': _('gmail'),
'url': 'gmail.com',
'external': True,
,
]
))
仅对指定组的用户和对其他人隐藏。 以常规方式,我会尝试使用 auth.get_user(),但这取决于“请求”。这对我来说是不可用的,或者至少是不可见的。 有什么办法可以实现这个功能? 还是谢谢。
【问题讨论】:
【参考方案1】:一种可能的解决方法(尽管几乎可以肯定有更好的方法):
首先,将'django.template.context_processors.request'
添加到settings.TEMPLATES['OPTIONS']['context_processors']
(如果它不存在)。这会将请求添加到模板上下文。
接下来,在 init_with_context 方法中对自定义仪表板进行更改,您现在可以访问请求(以及 request.user)
from grappelli.dashboard import modules, Dashboard
class CustomDashboard(Dashboard):
def init_with_context(self, context):
request = context['request']
user = request.user
groups = user.groups.all()
if groups == "whatever condition you want":
self.children.append(
...
)
【讨论】:
是的。我在仪表板脚本中获得了用户对象。谢谢。以上是关于Django Grappelli 用户组条件仪表板的主要内容,如果未能解决你的问题,请参考以下文章
当添加权限为 False 时,Django-grappelli 添加按钮在内联中可见
django admin 1.7 + django-grappelli 2.6.1 中的 jQuery datepicker 本地化