2017-11-15 9 views
0

私が作成しているdjangoプロジェクトがあります。 djangoプロジェクト内では、ユーザーと共通の2つのアプリケーションがあります。ユーザーのviews.pyファイル内の共通のapps views.pyファイルからユーザーがログインしているかどうかを確認する方法を使用したいと思います。どのように私は彼のユーザーviews.pyホームメソッドからメソッドで共通view.pyからLOGGEDIN方法することができます....同じプロジェクト内でdjangoアプリケーションを作成するアクセス方法= Django

ユーザー - > 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 

私は別のアプリから1メソッドを呼び出す方法を得るように見える傾けます。ユーザーをリダイレクトする必要はなく、メソッドを呼び出して、ユーザー・アプリケーションのviews.pyファイルのHomeメソッドに値を戻すだけです。この問題に関する文書は見つかりませんでした。

答えて

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

関連する問題