gpt4 book ai didi

python - 在 Django-templatetags 包含标签方法中获取登录用户信息?

转载 作者:太空宇宙 更新时间:2023-11-03 21:13:32 26 4
gpt4 key购买 nike

我正在尝试通过创建自定义模板标签的用户来呈现已登录用户名的导航菜单。 PFB代码,

@register.inclusion_tag('kpt/navbar.html')
def getmenu( params ):
raw = params.split("|")
active_item = raw[0]
menus = [
{"name": "Home", "url": "/kpt/", "class":""},
{"name": "High CPC", "url": "/kpt/hcpc", "class":""},
{"name": "Trending Keywords", "url": "/kpt/tcpc","class":""}
]
for menu in menus:
if menu["name"] == str(active_item):
menu["class"] = "active"
return {'menus':menus, "user":raw[1] }

我想检索此方法中的登录用户全名,而无需任何依赖项从模板传递它,因为然后我需要将变量与静态字符串连接起来,才能做到这一点。 Jinja 不支持哪个!像这样的事情:

{% getmenu "Home|MD Danish" %}

MD丹麦将在{{user.get_full_name}}的位置

请帮忙!

最佳答案

您可以按如下方式注册templatetag。只需在您注册 inclusion_tag

的地方传递 takes_context=True
@register.inclusion_tag('kpt/navbar.html', takes_context=True)  # This will get context data from view / template
def getmenu(params):
# Here you can get user as below
user = params.request.user
raw = params.split("|")
active_item = raw[0]
menus = [
{"name": "Home", "url": "/kpt/", "class":""},
{"name": "High CPC", "url": "/kpt/hcpc", "class":""},
{"name": "Trending Keywords", "url": "/kpt/tcpc","class":""}
]
for menu in menus:
if menu["name"] == str(active_item):
menu["class"] = "active"
return {'menus':menus, "user":raw[1] }

关于python - 在 Django-templatetags 包含标签方法中获取登录用户信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54882436/

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