・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
ご回答ありがとうございます!
管理画面でのスタッフとストアの設定を確認してみました!
一応、ログインできるユーザーと同じ設定にはなっていました。
しかし、以下のような症状が出ていることが確認できました。
・店舗Aのスタッフでログインする。
⇨店舗Aの予約状況が表示される ○
・店舗Bのスタッフでログインする。
⇨店舗Cの予約状況が表示される △
・店舗Cのスタッフでログインする。
⇨店舗Dの予約状況が表示される △
・店舗Dのスタッフでログインする。
⇨ Index Errorが起こる。 ×
ログインできないユーザーですが、ストアやスタッフの設定のご確認をお願いします。
ログインできるユーザーと同じように設定するとログインできます。
設定がもれているとアクセスできないので、エラーになってしまいます。