session_key
をオブジェクトに保存して、匿名ユーザーにデータを関連付けます。ユニットテストでは、テストクライアントを使用して固定キーを設定しようとしていますが、POSTリクエスト中にキーが変更されます。例:このcommentに基づいてDjangoユニットテストでセッションキーを取得/設定する
// tests.py
def test_post(self):
session_key = "123"
session = self.client.session
session['session_key'] = session_key
session.save()
response = self.client.post('/post-url/')
self.assertEquals(response.content, session_key)
# AssertionError: b'str60i3gjpvru8f7mellsdf2y3xd2jgh' != '123'
// views.py
@require_http_methods(['POST'])
def ajax_post(request):
return HttpResponse(request.session.session_key)
、私はSESSION_KEYが変更された前に別のGET応答response = self.client.get('/')
を含めることを試みたが、助けていないようです。
私は間違っていますか?
EDIT:私はDjango 1.9.6、Python 3.4を使用しています。 Daniel Rosemanの答えの後に変更された質問タイトル。
良い点。私はこれをやっているので、匿名ユーザーの履歴データに基づいて計算する方が簡単です - これに近づくための別の提案がありますか?私がセッションでそれを保存したら、とにかくそこからデータを抽出する必要があります。 あなたの答えからは、テスト開始時に 'session.session_key'を選んで、その後に必要なモデルを作成することができたことが分かりました。ありがとう! – wasabigeek