1

セッション変数を使用して、ユーザーが請負業者または雇用者としてログインしているかどうかを確認しています

請負業者の場合:

request.session['LoggedAsContractor'] = True

雇用主の場合:

request.session['LoggedAsContractor'] = False

次に、セッション変数を変更するだけの2つのスイッチメソッドtoContractorとtoEmployerを実装しました。

HTMLビューから、切り替えボタンをクリックしても変数は変更されず、他には何も変更されませんが、ページを更新すると、変数が変更され、その他すべてが変更されます。

このエラーは、ローカルホストでプロジェクトを実行している場合は発生しません。プロジェクトがデプロイされている場合にのみ発生します(Gondor)。

これは私が持っているセッションのタイプです:

INSTALLED_APPS = (
'django.contrib.sessions',
)

MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
)

アップデート

これは、ボタンスイッチによって呼び出されるtoContractorのメソッドです。

def switchToContractor(request, user_name):
    request.session['LoggedAsContractor'] = True
    if "employer" in request.GET['next']:
        if str(request.user) == user_name:
            return redirect('/contractor/' + user_name + '/')
        else:
            return redirect(request.GET['next'])
    else:
        return redirect(request.GET['next'])

request.session ['LoggedAsContractor']=Truerequest.session['LoggedAsContractor']= Falseの違いは、HTMLでの表示です。

HTMLコード:

{% if request.session.LoggedAsContractor %}
    <!-- Show some buttons -->
{% else %}
    <!-- Show other buttons -->
{% endif %}

更新2

これは、[切り替え]ボタンを含むHTMLコードです。

{% if request.session.LoggedAsContractor %}
    <a href="/contractor/{{request.user}}/switch/?next={{request.path}}">Switch to Employer View</a>
{% else %}
    <a href="/employer/{{request.user}}/switch/?next={{request.path}}">Switch to Contractor View</a>
{% endif %}

URL / Contractor / username / switch /は、メソッドswitchToEmployerにリダイレクトします。

URL / employee / username / switch /は、メソッドswitchToContractorにリダイレクトします。

4

2 に答える 2

0

これは、ユーザーに何かを表示するためにリクエストに応答が必要なエラーではありません。ボタン機能を追加できますか?

于 2012-08-02T11:40:06.630 に答える