You should set LOGIN_REDIRECT in the setting here is the docs  Settings | 
Django documentation | Django (djangoproject.com) 
<https://docs.djangoproject.com/en/5.0/ref/settings/#std-setting-LOGIN_REDIRECT_URL>


Sample code. 

settings.py
```python
from django.url import lazy_reverse
...
LOGIN_REDIRECT_URL =  reverse('event:create_table')

```
On Friday, January 19, 2024 at 9:10:25 PM UTC+3 nur syazwani wrote:

> 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/2dbee397-9f69-4d4e-8f3f-0f1150ac813fn%40googlegroups.com.

Reply via email to