KyleStranger
KyleStranger

Reputation: 241

django.contrib.auth.urls change redirect path

I am coding a basic login and register page app in Django/Python

Currently, after someone logs in, it redirects them back to the register page. I am trying to change the redirect path to "home/"

Please see the following code:

URLS.PY:

from django.contrib import admin
from django.urls import path , include
from accounts import views as v
from main import views as views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('home/' , views.home , name = 'home'),
    path('', v.register , name='register'),
    path('' , include('django.contrib.auth.urls') , name = 'login'),
]

Views.py:

from django.shortcuts import render , redirect
from .forms import RegisterForm

# Create your views here.
def register(response):
    if response.method == "POST":
        form = UserCreationForm(response.POST)
        if form.is_valid():
            form.save()
            return redirect("/home")
    else:
        form = RegisterForm()

    return render(response, "registration/register.html", {"form":form})

Login.html

{% extends "main/base.html"%}

{% block title %}
Login here
{% endblock %}

{% load crispy_forms_tags %}

{% block content %}
  <form class="form-group" method="post">
    {% csrf_token %}
    {{ form|crispy }}
    <p>Don't have an account ? Create one <a href="/register"></a></p>
    <button type="submit" class="btn btn-success">Login</button>
  </form>
{% endblock %}

Register.html

{% extends "main/base.html"%}

{% block title %}Create an Account{% endblock %}
{% load crispy_forms_tags %}

{% block content %}
  <form method="POST" class="form-group">
    {% csrf_token %}
    {{ form|crispy }}
  <p>Already have an account? Login <a href="{% url 'login' %}">here</a></p>
    <button type="submit" class="btn btn-success">Register</button>
  </form>
{% endblock %}

Upvotes: 1

Views: 1199

Answers (1)

Lars
Lars

Reputation: 1270

You can use this in settings.py file to redirect user after login :-

LOGIN_REDIRECT_URL = 'home/'

Upvotes: 1

Related Questions