1

私はウェブサイトを持っており、しばらくの間djangoでウェブサイトを書いていますが、これまでにこのようなことに遭遇したことはありません...

問題は、ログインするとすべて問題ないように見えますが、ランダムなページをサーフィンすると、{% if user.is_authenticated %} {%endif %} の間のコードが消えてしまうことです。

ログインした前のページに戻ると、次のページに移動する前に、再度ログインしたことが示され、完全にランダムに発生します。特定のアクションの後に発生するわけではありません。

わざとやろうとするとうまくいくことが多いのですが、時間が経つとこのようなことが起こります。ログインページに移動すると、ランダムにログアウトされていることが示されますが、セッションが存在することを理解しているように、何らかの理由でdjangoがそれを認識しないため、自動的にログに戻ります.....

何が間違っているのか非常に混乱しています。可能なアドバイスは素晴らしいでしょう。

1)セッション関数を使用していません。基本的に、意図的にこれらのイベントをトリガーできるものは何もありません。ビューの単純なロジックと return render_to_response('template', RequestContext(request, {})) のみ

2) Django はnginxuwsgiで実行されています

3)これは現在開発中の Webサイトですが、ユーザー テストとパスワード テストでログインできます...おそらく同じ効果が発生し、それが表示されます....しかし、私は保証しません完全にランダムです。試すには、ランダムなページをクリックする必要があります.....そして最終的に、ログアウトしていないにもかかわらず、ログアウトしたことを示すことがわかります。

4

1 に答える 1

0

あなたの投稿では、作業するための多くの情報が得られず、ページがタイムアウトします。

私の最善の提案は、login_requiredすべてのビューにデコレータを追加することです。実際にログアウトしている場合は、これがどこで発生したかを確認できます。

ページの上部にインポートを追加し、次のようにすべてのビューの上にデコレータを追加します。

from django.contrib.auth.decorators import login_required


@login_required(login_url='LINK_TO_LOGIN_URL')  
def first_view(request):
    # Your view code

ログインしていない時点で、ログイン URL にリダイレクトされます。

ログアウトしている場所を診断すると、トラブルシューティングがはるかに簡単になるはずです。すべてのビューにアクセスできる場合は、テンプレートとis_authenticatedコードのトラブルシューティングを行うことができます。

于 2013-01-09T02:46:00.603 に答える