【发布时间】:2019-09-03 14:44:12
【问题描述】:
所以我想在 Wagtail 管理员中添加一个额外的链接。我正在关注文档 (Register Admin Menu Item Hook) 并使用这个钩子来构建一个新的菜单项。
他们使用这个钩子来添加菜单项:
@hooks.register('register_admin_menu_item')
def register_edit_menu_item():
return MenuItem('Edit profile', 'edit_link', classnames='icon icon-folder-inverse', order=10000)
这应该成为开始编辑当前登录用户拥有的页面的链接。在模板中,我使用此代码创建直接链接以编辑用户的个人资料:
{% with request.user.owned_pages.all as pages %}
{% if pages.exists %}
{% for p in pages %}
{% if p.get_parent.id == 17 %}
<a class="list-group-item" href="/dashboard/pages/{{ p.id }}/edit/"><i class="fe-icon-edit mr-1 text-muted"></i>Edit profile</a>
{% endif %}
{% endfor %}
{% endif %}
{% endwith %}
这工作得很好,它直接链接到它应该链接到的页面。但是,如何实现这样的条件,即根据当前登录的用户生成菜单链接?
我认为是这样的:
if request.user.owned_pages.exists():
for p in request.user.owned_pages.all():
if p.get_parent.id == 17:
edit_link = "/dashboard/pages/" + p.id + "/edit/"
但是我怎样才能在 Wagtail 菜单挂钩中实现这样的东西呢?
【问题讨论】: