前提・実現したいこと
djangoでWEBアプリの会員登録画面を作成しています。
UserCreateViewを使ってユーザー登録を行っておりますが「regist」まではうまくいくのですがその後画面が遷移せず
下記のエラーメッセージが発生してしまいます。
(adminで確認し、登録自体は成功していました)
実現したいこと
エラーメッセージを出すことなく遷移させたい
発生している問題・エラーメッセージ
AttributeError at /accounts/create/ 'AnonymousUser' object has no attribute '_meta' accounts/views.py, line 47, in form_valid return redirect('accounts:login')
該当のソースコード(抜粋) accounts/view.py
class UserCreateView(FormView): # form_class = UserCreationForm form_class = CustomUserCreationForm template_name = 'registration/create.html' success_url = reverse_lazy('accounts:login') def form_valid(self, form): print(self.request.POST['next']) if self.request.POST['next'] == 'back': return render(self.request, 'registration/create.html', {'form': form}) elif self.request.POST['next'] == 'confirm': return render(self.request, 'registration/create_confirm.html', {'form': form}) elif self.request.POST['next'] == 'regist': form.save() # 認証 user = authenticate( username=form.cleaned_data['username'], password=form.cleaned_data['password1'], ) # ログイン login(self.request, user) return redirect('accounts:login') # return super().form_valid(form) # else: # # 通常このルートは通らない # return redirect(reverse_lazy('base:top'))
#create_confirm.html
<div class="ui grid stackable"> <div class="eleven wide column"> <div class="ui breadcrumb"> <i class="right angle icon divider"></i> <a class="active section">ユーザー作成</a> </div> <div class="ui segment"> <div class="content"> <div class="header"><h3>ユーザー作成</h3></div> <table class="ui celled table table table-hover" > <tr><td>お名前</td><td>{{form.cleaned_data.username}}</td></tr> <tr><td>パスワード</td><td>********</td></tr> </table> <form class="ui form" action="" method="POST"> {% csrf_token %} {% for field in form %} {{field.as_hidden}} {% endfor %} <button class="ui button" name="next" value="back" type="submit">修正</button> <button class="ui orange button" name="next" value="regist" type="submit">登録</button> </form> </div> </div> </div> </div>
### 試したこと いろいろ調べてviews.pyの中に問題があるようだったのでいくつか試してみたのですが 変化はなかったです。 ### 補足情報(FW/ツールのバージョンなど) Django 3.2.8 Python 3.9.6
あなたの回答
tips
プレビュー