フルスタックチャンネル
サインアップサインアップ
ログインログイン
利用規約プライバシーポリシーお問い合わせ
Copyright © All rights reserved | FullStackChannel
解決済
申し訳ありません、またIndexErrorについてです。 ※講座内容: 簡単 Djangoで予約サイトを構築しよう!
Django
Python
初心者
or-s
2023/01/16 09:49

実現したいこと

・IndexErrorを解決してスタッフ専用画面を表示させたい

発生している問題

ストア4つとスタッフ4人を設定して、ログインを試みた。
3人はログインできたが、1人はログイン時にIndexErrorが起こり、スタッフ画面が表示されない

ソースコード

class MyPageView(LoginRequiredMixin, View):
def get(self, request, *args, **kwargs):
staff_data = Staff.objects.filter(id=request.user.id).select_related('user').select_related('store')[0]
year = self.kwargs.get('year')
month = self.kwargs.get('month')
day = self.kwargs.get('day')
start_date = date(year=year, month=month, day=day)
days = [start_date + timedelta(days=day) for day in range(7)]
start_day = days[0]
end_day = days[-1]

自分で試したこと

・staff_data = Staff.objects.filter(id=request.user.id).select_related('user').select_related('store')[0]
がエラー該当箇所になるので、末尾の('store')[0]の引数を変更するなどした。

・エラー画面にException Location: /Users/sawa/Desktop/django-custom-auth/myvenv/lib/python3.9/site-packages/django/db/models/query.py, line 325, in __getitem__と記載があったので、該当ファイルの該当箇所を調査した。

補足情報

エラー画面です。

https://gyazo.com/f308515d11df9124cdc5eb17635e53a9


開発環境: macOS Ventura, Visual Studio Code
言語: Python 3.9.6
フレームワーク: django 3.1.14

回答 2件
login
回答するにはログインが必要です
or-s
2年以上前

ご回答ありがとうございます!

管理画面でのスタッフとストアの設定を確認してみました!
一応、ログインできるユーザーと同じ設定にはなっていました。

しかし、以下のような症状が出ていることが確認できました。

・店舗Aのスタッフでログインする。
⇨店舗Aの予約状況が表示される ○

・店舗Bのスタッフでログインする。
⇨店舗Cの予約状況が表示される △

・店舗Cのスタッフでログインする。
⇨店舗Dの予約状況が表示される △

・店舗Dのスタッフでログインする。
⇨ Index Errorが起こる。 ×

はる@講師
2年以上前

ログインできないユーザーですが、ストアやスタッフの設定のご確認をお願いします。

ログインできるユーザーと同じように設定するとログインできます。

設定がもれているとアクセスできないので、エラーになってしまいます。