访问方法在同一个项目= Django中形成django应用程序

时间:2017-11-15 22:09:37

标签: django

我正在创建一个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方法。找不到关于此事的任何文件。

1 个答案:

答案 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