Вход в django, основанный на представлении классов, не работает, - PullRequest
1 голос
/ 08 июля 2019

Я новичок в django, я делаю вход в систему, основываясь на курсе udemy, но он не работает для меня.Моя ошибка в том, что учетные данные не верны, если я начинаю сеанс с администратором, он также не работает.Это мой код, я надеюсь, вы можете помочь мне, спасибо,

Если есть какой-либо способ отладки, чтобы найти ошибку, пожалуйста, сообщите мне

url.py

from django.conf import settings
from django.urls import include, path
from django.conf.urls.static import static
from django.contrib import admin
from django.views.generic import TemplateView
from django.views import defaults as default_views

from tienda.users.views import (
    Indice, ListarProductos, DetalleProducto, ComentarioProducto, Ingresar, Salir, CambiarPerfil
)


urlpatterns = [

    path('', Indice.as_view(), name="indice"),
    path("listado_productos", ListarProductos.as_view(), name="listado_productos"),
    path("detalle_producto/<int:pk>/", DetalleProducto.as_view(), name="detalle_producto"),
    path("crear_comentario/", ComentarioProducto.as_view(), name="crear_comentario"),
    path("ingresar/", Ingresar.as_view(), name="ingresar"),
    path("salir/", Salir.as_view(), name="salir"),
    path("editar_perfil/", CambiarPerfil.as_view(), name="editar_perfil"),

    # Django Admin, use {% url 'admin:index' %}
    path(settings.ADMIN_URL, admin.site.urls),

    # Your stuff: custom urls includes go here
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

views.py

from django.contrib.auth import get_user_model
from django.contrib.auth.mixins import LoginRequiredMixin
from django.urls import reverse
from django.views.generic import DetailView, RedirectView, UpdateView, TemplateView , CreateView, ListView

from django.db.models import Q, Max, Min
from tienda.productos.models import Producto, Comentario
from django.contrib.auth.views import LoginView, LogoutView
from django.http import HttpResponseRedirect
from django.urls import reverse_lazy, reverse

User = get_user_model()


class Indice(TemplateView):
    template_name = 'index.html'


class Salir(LogoutView):
    next_page = reverse_lazy('indice')

class Ingresar(LoginView):
    template_name = "login.html"

    def get(self, request, *args, **kwargs):
        if request.user.is_authenticated:
            return HttpResponseRedirect(reverse('indice'))
        else:
            context = self.get_context_data(**kwargs)
            return  self.render_to_response(context)

    def get_success_url(self):
        return reverse('indice')

login.html

{% extends "base.html" %}

{% block contenido %}


<main>
    <center>
        <div class="section"></div>

        <div class="container">
            <div class="z-depth-1 grey lighten-4 row" style="display: inline-block; padding: 32px 48px 0px 48px; border: 1px solid #EEE; width: 60%;">

                <form class="col s12" action="{% url 'ingresar' %}" method="POST">
                    {% csrf_token %}
                    <div class='row'>
                        <div class="row">
                            <h1>
                                Ingresar
                            </h1>
                        </div>

                        <div class='col s12'>
                            <div class="row">

                                {% if form.errors %}
                                <div class="col s12 m10 l10 offset-m1 offset-l1">
                                    <div class="chip red" style="padding: 5px 5px 5px 5px; width: 100%; height: 50px;">
                                        <i class=" close material-icons right white-text">close</i>
                                        <center>
                                            <h6 class="white-text">Verifique su contraseña o correo electrónico<h6>
                                        </center>
                                        </div>
                                    </div>
                                </div>
                                {% endif %}
                            </div>
                        </div>


                        <div class='row'>
                            <div class='input-field col s12'>
                                <input class='validate login__form' type='email' name='username' id='email' required="required" />
                                <label for='email'>Ingresa tu correo</label>
                                <span class="helper-text">
                                    {% for error in form.email.errors %}
                                    {{ error|escape }} <br>
                                    {% endfor %}
                                </span>
                            </div>
                        </div>

                        <div class='row'>
                            <div class='input-field col s12'>
                                <input class='validate login__form' type='password' name='password' id='password' required="required" />
                                <label for='password'>Ingresa tu contraseña</label>
                                <span class="helper-text">
                                    {% for error in form.password.errors %}
                                    {{ error|escape }} <br>
                                    {% endfor %}
                                </span>
                            </div>
                        </div>
                        <br />
                        <center>
                        <div class='row'>
                            <button type='submit'  class='col s12 btn btn-large waves-effect'>Ingresar</button>
                        </div>
            </center>
        </form>
    </div>
</div>
</center>

<div class="section"></div>
<div class="section"></div>
</main>


{% endblock contenido %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...