- how to implement these files into my project ?
- have i to startapp “register” into my project ?
- i believe models.py , urls.py , forms.py and Admin.py should be put into the 
register folder ....
- login.html in the folder templates/
Thanks
Franz

Verstuurd vanaf mijn iPhone

> Op 8 nov. 2019 om 22:04 heeft DANIEL URBANO DE LA RUA 
> <[email protected]> het volgende geschreven:
> 
> Hablas español?
> 
>> On Fri, 8 Nov 2019, 17:59 Daniel Angel, <[email protected]> wrote:
>> LOGIN.HTML
>> 
>> {% extends "register/base.html" %}
>> {% block content %}
>> 
>> 
>> <div class="row">
>>     <!-- Lado izquierdo, área de inicio de sesión-->
>>     <div class="card col-md-6">
>>             <img class="mb-4" src="static/img/logo8.png" alt="" width="100">
>>         <div class="card-body">
>>             <form action="{% url 'register:login' %}" method="POST">
>>                     
>>                 {{ form.non_field_errors }}
>>                 {% for field in form %}
>>                     {{ field }}
>>                     {{ field.errors }}
>>                     <hr>
>>                 {% endfor %}
>>                 <button type="submit" class="btn btn-primary" >Iniciar 
>> sesión</button>
>>                 <input type="hidden" name="next" value="{{ next }}" />
>>                 {% csrf_token %}
>>             </form>
>>         </div>
>>     </div><!--A la izquierda, el área de inicio de sesión ha terminado -->
>> 
>>     <!-- Lado derecho, área de registro de miembros -->
>>     <div class="card col-md-6">
>>         <div class="card-body">
>>             <a href="{% url 'register:user_create' %}" class="btn 
>> btn-primary"    >Registro de Cliente </a><hr>
>>             <a href="{% url 'register:password_reset' %}" class="btn 
>> btn-primary" >Olvidé mi contraseña</a>
>>         </div>
>>     </div><!-- Fin del área de registro de membresía a la derecha -->
>> </div>
>> 
>> {% endblock %}
>> 
>> 
>> MODELO.PY
>> 
>> 
>> 
>> from django.db import models
>> from django.core.mail import send_mail
>> from django.contrib.auth.models import PermissionsMixin
>> from django.contrib.auth.base_user import AbstractBaseUser
>> from django.utils.translation import ugettext_lazy as _
>> from django.utils import timezone
>> from django.contrib.auth.base_user import BaseUserManager
>> from apps.validators import validaRut
>> 
>> class UserManager(BaseUserManager):
>>     """Administrador de usuariosー"""
>>     use_in_migrations = True
>> 
>>     def _create_user(self, email, password, **extra_fields):
>>         """Create and save a user with the given username, email, and
>>         password."""
>>         if not email:
>>             raise ValueError('The given email must be set')
>>         email = self.normalize_email(email)
>> 
>>         user = self.model(email=email, **extra_fields)
>>         user.set_password(password)
>>         user.save(using=self._db)
>>         return user
>> 
>>     def create_user(self, email, password=None, **extra_fields):
>>         extra_fields.setdefault('is_staff', False)
>>         extra_fields.setdefault('is_superuser', False)
>>         return self._create_user(email, password, **extra_fields)
>> 
>>     def create_superuser(self, email, password, **extra_fields):
>>         extra_fields.setdefault('is_staff', True)
>>         extra_fields.setdefault('is_superuser', True)
>> 
>>         if extra_fields.get('is_staff') is not True:
>>             raise ValueError('Superuser must have is_staff=True.')
>>         if extra_fields.get('is_superuser') is not True:
>>             raise ValueError('Superuser must have is_superuser=True.')
>> 
>>         return self._create_user(email, password, **extra_fields)
>> 
>> 
>> class User(AbstractBaseUser, PermissionsMixin):
>>     """Modelo de usuario personalizado
>> 
>>     username Sin usar、email La dirección se usa como nombre de usuario.
>> 
>>     """
>>     email = models.EmailField(_('dirección de correo electrónico'), 
>> unique=True)
>>     first_name = models.CharField(_('Nombre'), max_length=30, blank=True)
>>     last_name = models.CharField(_('Apellido'), max_length=150, blank=True)
>>     rut = models.CharField(_('Rut'), validators= [validaRut], 
>> max_length=10,blank=True, help_text="Ejemplo: 1111111-1")
>> 
>>     is_staff = models.BooleanField(
>>         _('staff status'),
>>         default=False,
>>         help_text=_(
>>             'Designa si el usuario puede iniciar sesión en este sitio de 
>> administración.'),
>>     )
>>     is_active = models.BooleanField(
>>         _('active'),
>>         default=True,
>>         help_text=_(
>>             'Designa si este usuario debe ser tratado como activo. '
>>             'Anule la selección de esto en lugar de eliminar cuentas.'
>>         ),
>>     )
>>     date_joined = models.DateTimeField(_('date joined'), 
>> default=timezone.now)
>> 
>>     objects = UserManager()
>> 
>>     EMAIL_FIELD = 'email'
>>     USERNAME_FIELD = 'email'
>>     REQUIRED_FIELDS = []
>> 
>>     class Meta:
>>         verbose_name = _('user')
>>         verbose_name_plural = _('users')
>> 
>>     def get_full_name(self):
>>         """Devuelve el primer nombre más el último nombre, con un espacio"""
>>         full_name = '%s %s' % (self.first_name, self.last_name, self.rut)
>>         return full_name.strip()
>> 
>>     def get_short_name(self):
>>         """Devuelve el nombre corto para el usuario."""
>>         return self.first_name
>> 
>>     def get_rut_name(self):
>>         """Devuelve el rut."""
>>         return self.rut
>> 
>>     def email_user(self, subject, message, from_email=None, **kwargs):
>>         """Enviar un correo electrónico a este usuario."""
>>         send_mail(subject, message, from_email, [self.email], **kwargs)
>> 
>>     @property
>>     def username(self):
>>         return self.email
>> 
>> 
>> URLS.PY
>> 
>> 
>> 
>> from django.urls import path
>> from . import views
>> 
>> app_name = 'register'
>> 
>> urlpatterns = [
>>     path('', views.Top.as_view(), name='top'),
>>     path('login/', views.Login.as_view(), name='login'),
>>     path('logout/', views.Logout.as_view(), name='logout'),
>>     path('user_create/', views.UserCreate.as_view(), name='user_create'),
>>     path('user_create/done/', views.UserCreateDone.as_view(), 
>> name='user_create_done'),
>>     path('user_create/complete/<token>/', 
>> views.UserCreateComplete.as_view(), name='user_create_complete'),
>>     path('user_detail/<int:pk>/', views.UserDetail.as_view(), 
>> name='user_detail'),
>>     path('user_update/<int:pk>/', views.UserUpdate.as_view(), 
>> name='user_update'),
>>     path('password_change/', views.PasswordChange.as_view(), 
>> name='password_change'),
>>     path('password_change/done/', views.PasswordChangeDone.as_view(), 
>> name='password_change_done'),
>>     path('password_reset/', views.PasswordReset.as_view(), 
>> name='password_reset'),
>>     path('password_reset/done/', views.PasswordResetDone.as_view(), 
>> name='password_reset_done'),
>>     path('password_reset/confirm/<uidb64>/<token>/', 
>> views.PasswordResetConfirm.as_view(), name='password_reset_confirm'),
>>     path('password_reset/complete/', views.PasswordResetComplete.as_view(), 
>> name='password_reset_complete'),
>>     path('email/change/', views.EmailChange.as_view(), name='email_change'),
>>     path('email/change/done/', views.EmailChangeDone.as_view(), 
>> name='email_change_done'),
>>     path('email/change/complete/<str:token>/', 
>> views.EmailChangeComplete.as_view(), name='email_change_complete'),
>> ]
>> 
>> FORMS.PY
>> 
>> 
>> 
>> from django import forms
>> from django.contrib.auth.forms import (
>>     AuthenticationForm, UserCreationForm, PasswordChangeForm,
>>     PasswordResetForm, SetPasswordForm
>> )
>> from django.contrib.auth import get_user_model
>> 
>> User = get_user_model()
>> 
>> 
>> class EmailChangeForm(forms.ModelForm):
>>     """Formulario de cambio de dirección de correo electrónico"""
>> 
>>     class Meta:
>>         model = User
>>         fields = ('email',)
>> 
>>     def __init__(self, *args, **kwargs):
>>         super().__init__(*args, **kwargs)
>>         for field in self.fields.values():
>>             field.widget.attrs['class'] = 'form-control'
>> 
>>     def clean_email(self):
>>         email = self.cleaned_data['email']
>>         User.objects.filter(email=email, is_active=False).delete()
>>         return email
>> 
>> 
>> class LoginForm(AuthenticationForm):
>>     """Formulario de acceso"""
>> 
>>     def __init__(self, *args, **kwargs):
>>         super().__init__(*args, **kwargs)
>>         for field in self.fields.values():
>>             field.widget.attrs['class'] = 'form-control'
>>             field.widget.attrs['placeholder'] = field.label  # placeholder 
>> Poner etiqueta de campo en
>> 
>> 
>> class UserCreateForm(UserCreationForm):
>>     """Formulario de registro de usuario"""
>> 
>>     class Meta:
>>         model = User
>>         fields = ('email',)
>> 
>>     def __init__(self, *args, **kwargs):
>>         super().__init__(*args, **kwargs)
>>         for field in self.fields.values():
>>             field.widget.attrs['class'] = 'form-control'
>> 
>>     def clean_email(self):
>>         email = self.cleaned_data['email']
>>         User.objects.filter(email=email, is_active=False).delete()
>>         return email
>> 
>> 
>> class UserUpdateForm(forms.ModelForm):
>>     """Formulario de actualización de información del usuario"""
>> 
>>     class Meta:
>>         model = User
>>         fields = ('last_name', 'first_name','rut',)
>> 
>>     def __init__(self, *args, **kwargs):
>>         super().__init__(*args, **kwargs)
>>         for field in self.fields.values():
>>             field.widget.attrs['class'] = 'form-control'
>> 
>> 
>> class MyPasswordChangeForm(PasswordChangeForm):
>>     """Formulario de cambio de contraseña"""
>> 
>>     def __init__(self, *args, **kwargs):
>>         super().__init__(*args, **kwargs)
>>         for field in self.fields.values():
>>             field.widget.attrs['class'] = 'form-control'
>> 
>> 
>> class MyPasswordResetForm(PasswordResetForm):
>>     """Olvidé el formulario de contraseña"""
>> 
>>     def __init__(self, *args, **kwargs):
>>         super().__init__(*args, **kwargs)
>>         for field in self.fields.values():
>>             field.widget.attrs['class'] = 'form-control'
>> 
>> 
>> class MySetPasswordForm(SetPasswordForm):
>>     """Formulario de restablecimiento de contraseña (olvidé la contraseña y 
>> restablecí)"""
>> 
>>     def __init__(self, *args, **kwargs):
>>         super().__init__(*args, **kwargs)
>>         for field in self.fields.values():
>>             field.widget.attrs['class'] = 'form-control'
>> 
>> 
>> 
>> ADMIN.PY
>> 
>> 
>> from django.contrib import admin
>> from django.contrib.auth.admin import UserAdmin
>> from django.contrib.auth.forms import UserChangeForm, UserCreationForm
>> from django.utils.translation import ugettext_lazy as _
>> from .models import User
>> 
>> 
>> class MyUserChangeForm(UserChangeForm):
>>     class Meta:
>>         model = User
>>         fields = '__all__'
>> 
>> 
>> class MyUserCreationForm(UserCreationForm):
>>     class Meta:
>>         model = User
>>         fields = ('email',)
>> 
>> 
>> class MyUserAdmin(UserAdmin):
>>     fieldsets = (
>>         (None, {'fields': ('email', 'password')}),
>>         (_('Personal info'), {'fields': ('first_name', 'last_name')}),
>>         (_('Permissions'), {'fields': ('is_active', 'is_staff', 
>> 'is_superuser',
>>                                        'groups', 'user_permissions')}),
>>         (_('Important dates'), {'fields': ('last_login', 'date_joined')}),
>>     )
>>     add_fieldsets = (
>>         (None, {
>>             'classes': ('wide',),
>>             'fields': ('email', 'password1', 'password2'),
>>         }),
>>     )
>>     form = MyUserChangeForm
>>     add_form = MyUserCreationForm
>>     list_display = ('email', 'first_name', 'last_name', 'rut', 'is_staff')
>>     list_filter = ('is_staff', 'is_superuser', 'is_active', 'groups')
>>     search_fields = ('email', 'first_name', 'last_name', 'rut')
>>     ordering = ('email',)
>> 
>> 
>> admin.site.register(User, MyUserAdmin)
>> 
>> 
>> SETTINGS.PY
>> 
>> 
>> 
>> INSTALLED_APPS = [
>>     'register.apps.RegisterConfig',
>>     'django.contrib.admin',
>>     'django.contrib.auth',
>>     'django.contrib.contenttypes',
>>     'django.contrib.sessions',
>>     'django.contrib.messages',
>>     'django.contrib.staticfiles',
>>     'apps.cliente',
>> ]
>> 
>> 
>> 
>> EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
>> 
>> 
>> 
>> EMAIL_USE_TLS= True
>> EMAIL_HOST= 'smtp.gmail.com'
>> EMAIL_PORT= 25
>> EMAIL_HOST_USER= '[email protected]'
>> EMAIL_HOST_PASSWORD='password'
>> EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>>> El vie., 8 nov. 2019 a las 12:58, Paras Jain (<[email protected]>) 
>>> escribió:
>>> I want to send mail and password to this particular  email I'd which will 
>>> be used for future login
>>> Problem is how to send mail and connect that password with database how it 
>>> gonna be possible stuck Need help
>>> Please find the file aatached below nd thanks
>>> -- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "Django users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to [email protected].
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/django-users/CAMtmBS_R739__nZ2-ZYxPwsWAcn2o62hWPXNLrFRxx9w9nMoHQ%40mail.gmail.com.
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/django-users/CA%2By6opqPLy7Puzxj2Ha%2BH9tJgfCJQJPcgsdrKsjNM6_CAckV%2BA%40mail.gmail.com.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/django-users/CAO_yRT1rji_cYTa5HXCVcQDz661D2P%2BpzGov2_BQeGtf4FQ9xA%40mail.gmail.com.

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/042AC579-CAB4-4F5F-9F8A-1EDD5B1FCCAB%40gmail.com.

Reply via email to