如何在views.py中调用用户定义的函数DJANGO

时间:2018-03-12 07:50:32

标签: python django django-views user-defined-functions

要求是在右上角的所有页面中显示登录用户名及其在组织中的角色。 该角色可以通过他给出的权限来识别。

我的方法:

我想在views.py中创建一个用户定义的函数,并在每个其他函数中调用它。我创建的函数应该检查当前用户的权限,并根据它们决定他的角色。所有这些细节必须发送到base.html,以便每次加载页面时它都会呈现并显示用户名和他的角色。

欢迎任何有关其他方法的建议,如果我的方法完全错误,请告诉我。

2 个答案:

答案 0 :(得分:0)

在视图中,您可以执行以下操作:

context = {
'username': username,
'role': role,
}


return render('template.html', context)

然后在template.html中,您将其呈现为:

{username} {role}

答案 1 :(得分:0)

您可以在Can I call a view from within another view?

的评论部分找到答案 不过,是的,你可以创建一个验证用户/部门的方法。下面是我在我的应用程序中完成的示例。 我觉得更好的方法是将DB中的这些细节保存为布尔标志,并使用django admin的功能来简化您的工作。

def validate_details(request): user = request.GET['username'] user_details = User.objects.filter(name=user).values_list("name", "department", flat=True) # Call validation method defined in view is_ok = validate_user(user_details) if is_ok: return render_to_response("main/landing.html", {"user": user_details["name"],"department":user_details["department"]}, context_instance=RequestContext(request)) else: return render_to_response("main/landing.html", {"user":"NA","department":"NA"}, context_instance=RequestContext(request))