login.html in (authenticate/login.html)
{% extends "events/base.html" %}
{% block content %}
<h1>Login</h1>
<br><br>
<form action="" method="POST">
{% csrf_token %}
<form>
<div >
<label for="exampleInputUserName" >User name</label>
<input type="text" name="username">
</div>
<div >
<label for="exampleInputPassword1" >Password</label>
<input type="password" name="password">
</div>
</form>
<input type="submit" value="Submit" >
</form>
<br><br>
{% endblock content %}
when click the submit button nothing happened
urls.py in (events)
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
]
urls.py in (members)
from django.urls import path
from . import views
urlpatterns = [
path('login_user/', views.login_user, name='login'),
]
urls.py in (myclub_webesite)
rom django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('events.urls')),
path('members/', include('django.contrib.auth.urls')),
path('members/', include('members.urls')),
]
views.py in (members)
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout
from django.contrib import messages
def login_user(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
else:
messages.success(
request, ("There Was An Error Logging In, Try Again..."))
return redirect('login')
else:
return render(request, 'authenticate/login.html', {})
setting are put in members i have try use other code username = request.POST['username'] password = request.POST['password'] and same nothing happened
CodePudding user response:
In your form tag, define the appropriate API method:
<form method='POST'>
.
.
.
</form>
<input type="submit" >
CodePudding user response:
### You have used 2 form tag so there was an error
{% extends "events/base.html" %}
{% block content %}
<h1>Login</h1>
<br><br>
<form action="" method="POST">
{% csrf_token %}
<div >
<label for="exampleInputUserName" >User name</label>
<input type="text" name="username">
</div>
<div >
<label for="exampleInputPassword1" >Password</label>
<input type="password" name="password">
</div>
<input type="submit" value="Submit" >
</form>
<br><br>
{% endblock content %}
Views.py I change the success message to error message because if there is an error then user so will see error message not success
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout
from django.contrib import messages
def login_user(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
else:
### success -> error
messages.error(
request, ("There Was An Error Logging In, Try Again..."))
return redirect('login')
else:
return render(request, 'authenticate/login.html', {})