我正在创建一个django项目。在django项目中,我有两个用户和普通的应用程序。我想使用一个方法来验证用户是否从用户views.py文件中的公共应用程序views.py文件登录。我怎么能从他用户views.py Home方法的方法中通过常见的view.py中的LoggedIn方法....
用户 - > views.py文件:
# checks if someone is logged in
def Home(request):
# check if there is a user logged in
currentUser = LoggedIn(request)
# no user logged in
if currentUser == None:
# send user to the main sign in and log in form
return redirect('Signup')
# a user logged in
else:
# users home page content will be down below
parameters = 'parameters'
普通 - > views.py文件:
def LoggedIn(request):
if 'username' not in request.session:
return None
else:
user = request.session['username']
currentUser = User.objects.get(username=username)
return curentUser
我似乎无法从不同的应用程序中调用一个方法。我不想重定向用户,而只是调用方法并将值返回到用户app views.py文件中的Home方法。找不到关于此事的任何文件。
答案 0 :(得分:0)
你正试图在那里重新发明轮子。 Django具有内置的身份验证支持,可以正常执行您正在尝试执行的操作。在尝试编写代码之前,我会做更多的阅读,从这里开始:https://docs.djangoproject.com/en/1.11/topics/auth/default/
具体来说,您似乎在寻找login_required
装饰者。
如果您的问题是概念性的,那么您正在寻找从其他文件导入函数的方法,在这种情况下请检查this question。
此外,Python还有一个编码风格指南,称为PEP。例如,函数名称建议为小写,单词用下划线分隔。我建议你也检查一下:https://www.python.org/dev/peps/pep-0008/#function-names