LoginSignup
0
0

More than 1 year has passed since last update.

Djangoアプリ開発【友達リスト】〜その⑦〜

Last updated at Posted at 2021-06-15

はじめに

今回はDjangoを使って友達リスト的なアプリを作成しようと思います。
プロジェクト名はTomodachi

ログインしているユーザーのみ一覧表示画面に行けるようにする(エラー解決)

'AnonymousUser' object is not iterable
このエラーはどうやらAnonymousUser(未ログインユーザー)によるエラーでした。
未ログインユーザーはカテゴリを持っていないよという感じですね。
前回のエラーの原因がわかりました。
一旦休憩して間を置くとわかることもあるもんですね。
それ以前にエラー文をしっかり理解できていればよかった。

# ブランチ作成
$ git branch feature-loginuser-access
$ git checkout feature-loginuser-access
friendslist/views.py
# ログインユーザーしか処理できないようにする
from django.contrib.auth.decorators import login_required

@login_required
def index(request):

@login_required
def create(request):

@login_required
def friend(request, pk):

ログイン新規登録以外のその他のmethodにも追加する
friendslist/views.py
# 新規登録後そのままログインできるようにする(そもそも前回これができていなかった)
from django.contrib.auth import login

def signup(request):
  context = {}
  if request.method == 'POST':
    form = UserCreationForm(request.POST)
    if form.is_valid():
      user = form.save(commit=False)
      # user.is_active = False
      user.save()
      login(request, user)  ←☆追加する
      messages.success(request, '登録完了!!!')
      return redirect('/')  ←(/login/)から(/)に変更する

  return render(request, 'friendslist/auth.html', context)

さいごに

今回は新規登録時のログインエラーを実装しました。
ログインユーザーのみがアプリを使用できる
新規登録後にログインできるようにする

次回は
DBの設定とデプロイをします!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0