在Django(1.11.10)中使用Grappelli(2.11.1)。 我精心设计了小型自定义仪表板,现在查看一些方法来改变元素的外观。 特别是我需要显示一些url-element
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(),但这取决于' request'。这对我来说是不可用的,或者至少是不可见的。 有什么方法可以使这个功能? 不管怎样,谢谢。
答案 0 :(得分:0)
一种可行的解决方法(尽管几乎肯定有更好的方法):
首先,如果'django.template.context_processors.request'
已经存在,请settings.TEMPLATES['OPTIONS']['context_processors']
添加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(
...
)
。这会将请求添加到模板上下文中。
接下来,在init_with_context方法中对自定义仪表板进行更改,您现在可以访问该请求(因此请求.user)
{{1}}