前提・実現したいこと
プログラミング初心者です。Djangoで麻雀のスコア計算機能の付いたスコア表を作成して、ネットに公開しようといます。
ネットに公開するにあたり各ユーザの登録したスコア同士が混合してしまうといけないので、主にrequest.user.usernameを使うことでスコアにユーザの情報を登録させる機能を作ることはできました。
発生している問題・エラーメッセージ
試しにpython3 manage.py runserverをして、作ったサイトを複数のタグで開いてみました。そしてそれぞれのタグで別々のユーザでログインしてみたところ、最後にログインしたタグのrequest.user.usernameがすべてのタグに反映されてしまいました。
このままだと
①ネットで公開したときに複数のユーザが同時にログインすると、最後にログインしたユーザの情報が他のサイトを開いている人たちに反映されてしまい、実現したいことが達成できない
と思いました。
しかし
②今の状況がhttp://localhost:8000/だからこうなってしまう(実際にネットに公開したときはこのようなことは起きない)
のかな?とも思い、わからなくなってしまいました。
①の場合、request.user毎のページを作成することで解決できるのではないか。と思いましたが、今はネットで公開できる状況ではなくどちらかわからないので、この場で質問する形になってしまいました。
該当のソースコード
テスト用に、ログインしたときに遷移されるページのhtmlファイルにrequest.user.usernameを表示させてみました。
#####urls.py
python
1path('top/', MahjongRecordTop.as_view(), name = 'top'),
#####views.py
class MahjongRecordTop(ListView): template_name = 'top.html' model = MahjongRecordModel
#####top.html
html
1{{ request.user.username }}
そしてrunserverして、まずあるタグでユーザ1でログインし、その後他のタグでユーザ2でログインしたところ、どちらのタグにも'ユーザ2'と表示されてしまいました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/02 03:47 編集