Home > Blockchain >  try to authenticate login, submit nothing happened
try to authenticate login, submit nothing happened

Time:12-16

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', {})
  • Related