my authentication view:

class LoginView(auth_views.LoginView):

form_class = LoginForm

template_name = 'event/login.html'

def post(self, request, *args, **kwargs):

next_url = self.request.POST.get('next', reverse('event:create_table'))

response = super().post(request, *args, **kwargs)

redirect_url = reverse('event:login') + f"?next={next_url}"

#ログインできたら、前の画面・ホーム画面に戻る

if self.request.user.is_authenticated:

return redirect(next_url)

else:

return redirect(redirect_url)

return response

class RegisterView(generic.CreateView):

form_class = RegisterForm

template_name = 'event/register.html'

#登録できたら、前の画面・ホーム画面に戻る

def form_invalid(self, form):

messages.error(self.request, '会員登録に失敗しました。正しい情報を入力してください。')

next_url = self.request.POST.get('next', reverse('event:create_table'))

return redirect(next_url)

def get_success_url(self):

messages.success(self.request, '会員登録完了!ログインしてください')

next_url = self.request.POST.get('next', reverse('event:create_table'))

return next_url


my login html:

<h1>ログイン</h1>


<form action="{% url 'event:login' %}" method="POST">

{% csrf_token %}

{{ form.as_p }}

<input type="hidden" name="next" value="{{ request.GET.next }}">


<!-- ログインボタン -->

<button type="submit" class="submit-button" id="submit">ログイン</button> 

</form>

My problem was it didn't redirect to the previous page after login. It 
worked before this but suddenly it didn't. The url included the previous 
url in the next parameter but after submitting the form, it redirect to the 
default event:create_table. Can someone give me any idea why did this 
happen??

i tried changing to request.POST.get('next', reverse('event:create_table')) 
and it kinda seems to work, but previously i use request.POST it didn't 
work so now I am confused. And in my test case, request.POST didnt redirect 
to the correct url but request.GET did so I don't know my django website 
couldn't work properly

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/09fc13dd-e89f-46ee-aa7c-4dcd5b9cb518n%40googlegroups.com.

Reply via email to