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 [email protected].
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