Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

560
Vistas
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.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

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.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda