Cómo agregar un nuevo proyecto para iniciar sesión, registrarse, cambiar su contraseña, restablecer su contraseña, correo electrónico y otras funciones para recuperar la contraseña?

En primer lugar, los dos cuadro rojo siguiente de copias de html en el lugar correspondiente del nuevo proyecto, asegúrese de colocar el mismo que (archivos HTML específicos, guardar archivos en mi columna del blog en el jardín),

html archivo, aparece similar a {% url "tienda: login" %} lugar, recuerde, la tienda de aplicaciones para ser reemplazado en el nombre del proyecto actual.

 

Dos, la configuración fija como sigue.

compras: Representación product_list después de una conexión exitosa, salto a qué camino ( 'product_list /') dirección url.

compras: entrada que representa la pista de aterrizaje ( '/ login') direcciones URL.

Tres, siempre de acuerdo con el código de abajo base.html

{% De carga estática%} 
<! DOCTYPE html> 
<html lang = "es"> 
<head> 
    <meta charset = "UTF-8"> 
    <title> {% block title%} {% endblock%} </ title> 
    <link href = "{/ base.css "css% rel = "stylesheet" % estática"}"> 
</ head> 
<body> 
    <div id = "header"> 
        <a href = "/" class = "logo "> Mi tienda </a> 
    </ div> 
    {% if%} request.user.is_authenticated 
        <div id =" "style = "margin-left subtítulo: 20px"> 
            <div class = "carrito"> 
                Su cesta está vacío.
            </ div> 
        </ div> 
    {% endif%} 
    <div style = "margin-right: 20px"> 
        {% if%} request.user.is_authenticated 
            Hola {{}} request.user.first_name, <a href="{% url "shop:password_change" %}">修改密码</a> 
            <a href = "{ % URL "tienda: cierre de sesión" %} "> Salir </a> 
        {% else%} 
            <a href="{% url "shop:login" %}"> Log-in </a> 
        {% endif%} 
    </ div> 
    <div id = "contenido"> 
        {% de contenido de bloque%} 
        {% endblock%} 
    </ div> 
</ body> 
</ html>

  En cuarto lugar, en la parte inferior del archivo en forms.py, pegue el siguiente código:

de django formas de importación 
de usuario django.contrib.auth.models importación 


LoginForm clase (forms.Form): 
    nombre de usuario = forms.CharField () 
    password = forms.CharField (Widget = forms.PasswordInput) 


UserRegistrationForm clase (forms.ModelForm): 
    contraseña = forms.CharField (label = 'contraseña', widget de = forms.PasswordInput) 
    password2 = forms.CharField (label = 'Repeat password', widget de = forms.PasswordInput) 

    clase Meta: 
        modelo = usuario 
        campos = ( 'nombre de usuario', ' nombre', 'email') 

    def clean_password2 (auto): 
        cd = self.cleaned_data 
        si cd [ 'password'] = CD! [ 'password2']: 
            formas subida.ValidationError ( 'contraseña, don \' t partido. ') 
        retorno cd [ 'password2']

  En quinto lugar, en urls.py archivo a continuación, pegue el siguiente código:

de ruta django.urls importación 
de vistas django.contrib.auth importación como auth_views 
de. vistas de importación 

APP_NAME 'Comprar' = 

urlpatterns = [ 
    ruta ( 'login /', auth_views.LoginView.as_view (), el nombre = 'login'), 
    ruta ( 'Salir /', auth_views.LogoutView.as_view (), name =' Salir '), 
    ruta ('', views.product_list, name = 'product_list'), 
    # cambiar las URL de contraseñas 
    ruta ( 'password_change /', 
         auth_views.PasswordChangeView.as_view ( 
            template_name = 'tienda / password_change_form.html', 
            success_url =" / password_change / hecho /", 
         ), name = 'password_change'), 
    ruta de acceso ('
         auth_views.PasswordChangeDoneView.as_view ( 
            template_name = 'tienda / password_change_done.html' 
         ), name = 'password_change_done'), 
    # Restablecer URL contraseña 
    ruta ( 'restablecimiento de contraseña /', 
         auth_views.PasswordResetView.as_view ( 
             template_name = "tienda / password_reset_form. html", 
             email_template_name = "tienda / password_reset_email.html", 
             subject_template_name = "tienda / password_reset_subject.txt", 
             success_url = "/ restablecimiento de contraseña-hecho /", 
         ), 
         name = 'password_reset'), 
    ruta ( 'restablecimiento de contraseña -done /', 
         auth_views.PasswordResetDoneView.as_view (
             template_name = "tienda / password_reset_done.html" 
         ), 
         name = 'password_reset_done'), 
    ruta ( 'restablecimiento de contraseña a confirmar / <uidb64> / <token> /', 
         auth_views.PasswordResetConfirmView.as_view ( 
             template_name = "tienda / password_reset_confirm. html", 
             success_url = "/ restablecimiento de contraseña-completa /", 
         ), 
         name = 'password_reset_confirm'), 
    ruta ( 'password-reset-completa /', 
         auth_views.PasswordResetCompleteView.as_view ( 
             template_name = "tienda / password_reset_complete.html" 
         ), 
         name = 'password_reset_complete'),
    trayectoria ( 'registro /', views.register, name = 'registro'),
   
]

  En sexto lugar, bajo el expediente views.py, pegue el siguiente código:

Importar los django.shortcuts render de, get_object_or_404 
de la categoría .models importación, producto 
de importación cart.forms CartAddProductForm 
de django.contrib.auth.decorators importación login_required 
de .forms importación UserRegistrationForm 


DEF Registro (Request): 
    SI request.method == 'el POST ': 
        user_form = UserRegistrationForm (request.POST) 
        SI user_form.is_valid (): 
            # crear un nuevo objeto de usuario, pero evite para guardarlo 
            new_user = user_form.save (el commit = False) 
            # settings contraseña seleccionada 
            new_user.set_password (user_form .cleaned_data [ 'password']) 
            # Guardar el objeto de usuario 
            new_user.save ()
            volver render (solicitud, 'tienda / register_done.html', { 'new_user': new_user}) 
    más: 
        user_form = UserRegistrationForm () 
    de retorno render (solicitud, 'tienda / register.html', { 'user_form': user_form}) 


@ login_required 
def product_list (request, category_slug = None): 
    # ......... 


@login_required 
def product_detail (solicitud, ID, babosa): 
    # ........

  

Supongo que te gusta

Origin www.cnblogs.com/tuobei/p/12509612.html
Recomendado
Clasificación