0
votes

These are my files while making a signup and login page please tell me where it went wrong.

url.py/home ''' from django.contrib import admin from django.urls import path,include from . import views

app_name='home'
urlpatterns = [
    path('',views.index, name='index'),
    path('register/',views.register, name='register'),
    path('login/',views.user_login, name='login'),
]
'''
views.py
'''

def user_login(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(username=username, password=password)
        if user:
            if user.is_active:
                login(request,user)
                return HttpResponseRedirect(reverse('index'))
            else:
                return HttpResponse("Your account was inactive.")
        else:
            print("Someone tried to login and failed.")
            print("They used username: {} and password: {}".format(username,password))
            return HttpResponse("Invalid login details given")
    else:
        return render(request, 'home/login.html', {})
'''
settings.py
'''
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR,'templates')
STATIC_DIR = os.path.join(BASE_DIR,'static')
MEDIA_DIR = os.path.join(BASE_DIR,'media')

STATIC_URL = '/static/'
STATICFILES_DIRS = [STATIC_DIR,]
MEDIA_ROOT = MEDIA_DIR
MEDIA_URL = '/media/'
LOGIN_URL = '/home/user_login/'
'''
1
The login url is /home/login/ not home/user_login/. But the error comes from somewhere else, because it's trying to reverse a url name. The name of your url is home:login not user_login. So check if you're using the wrong name in any of your templates. Or show us the full error trace. - dirkgroten

1 Answers

1
votes

change the login url to

from django.core.urlresolvers import reverse_lazy

LOGIN_URL = reverse_lazy('home:login')