• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

425
Views
Método no permitido (POST): /login/

Estoy tratando de obtener los datos de los usuarios usando un formulario que tengo en un archivo .html llamado login.html . El código para eso es:

 <form class="register-form" method="POST" action="{% url 'login' %}"> {% csrf_token %} <table> <tr> <td>Username: </td> <td><input type="username" name="username"><br></td> </tr> <tr> <td>Password: </td> <td><input type="password" name="password"><br></td> </tr> </table> <br> <input type="submit" value="Login" /> </form>

Ya tengo una base de datos con un grupo de usuarios donde se almacenan el nombre de usuario y las contraseñas. Quiero crear mi propia página de inicio de sesión que verifique esa base de datos. Lo que estoy tratando de hacer es esencialmente llevar al usuario a la página login.html y luego dejar que el usuario ingrese los detalles y verifique con la base de datos.

Mi urls.py se ve así:

 from django.conf.urls import url, include from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^register$', include('register.urls')), url(r'^login/', include('login.urls')), url(r'^', include('home.urls')), ]

efectivamente va a login.urls donde urls.py para eso es:

 from django.conf.urls import url, include from django.contrib import admin from login import views urlpatterns = [ url(r'^$', views.LoginPageView.as_view(), name='login'), ]

mi views.py es:

 from django.shortcuts import render from django.views.generic import TemplateView from person.models import Person class LoginPageView(TemplateView): template_name = "login.html" def get(self, request, **kwargs): print(request) return render(request, 'login.html')

El problema es que cuando hago clic en el botón Enviar, quiero verificar con la base de datos, si no tengo éxito, mostrar un error en la página de inicio de sesión; de lo contrario, autenticar correctamente al usuario y llevarlo a la página de inicio.

En lugar de que funcione, obtengo: Method Not Allowed (POST): /login/ [21/Apr/2017 14:31:12] "POST /login/ HTTP/1.1" 405 0

Gracias.

almost 3 years ago · Santiago Trujillo
1 answers
Answer question

0

Está enviando datos en la solicitud POST y en View.py está utilizando vistas basadas en clases y en esa clase está utilizando el método de obtención en lugar del método de publicación.

vistas.py

 from django.shortcuts import render from django.views.generic import TemplateView from person.models import Person class LoginPageView(TemplateView): template_name = "login.html" def post(self, request, **kwargs): print(request) return render(request, 'login.html')

simplemente reemplace su método get con post.

almost 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error