在我看来,我正在检查拥有特定电子邮件地址的用户是否是经过身份验证的用户。如果没有,我想重定向到注销,然后使用相同的 URL 登录。这是我的观点:
class VerifyUserEmailAddressView(LoginRequiredMixin, SingleObjectMixin, generic.View):
model = UserEmailAddress
success_url = reverse_lazy('accounts:edit_profile_emails')
def get(self, request, *args, **kwargs):
email_address = self.get_object()
if (not (email_address.user == self.request.user)):
return redirect(to='accounts:logout', **{'next_page': self.request.get_full_path()}) # This is the line that causes the exception.
assert (email_address.user == self.request.user)
...
这是我的注销视图:
class LogoutView(django_auth_views.LogoutView):
template_name = 'accounts/logged_out.html'
但问题是,我得到一个例外:
django.urls.exceptions.NoReverseMatch: Reverse for 'logout' with keyword arguments '{'next_page': '/edit-profile/emails/95209103364882328130/verify/64435189922652686051/'}' not found. 1 pattern(s) tried: ['logout\\/$']
urls.py:
urlpatterns = [
path(route='login/', view=views.LoginView.as_view(), name='login'),
path(route='logout/', view=views.LogoutView.as_view(), name='logout'),
path(route='edit-profile/emails/', view=views.EditProfileEmailsView.as_view(), name='edit_profile_emails'),
path(route='edit-profile/emails/<digits:pk>/verify/<str:token>/', view=views.VerifyUserEmailAddressView.as_view(), name='verify_email'),
]
我该如何解决这个问题?
慕姐4208626
噜噜哒
随时随地看视频慕课网APP
相关分类