Hablas español?
On Fri, 8 Nov 2019, 17:59 Daniel Angel, <[email protected]
<mailto:[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 <http://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 <http://smtp.gmail.com>'
EMAIL_PORT= 25
EMAIL_HOST_USER= '[email protected] <mailto:[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] <mailto:[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]
<mailto:[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
<https://groups.google.com/d/msgid/django-users/CAMtmBS_R739__nZ2-ZYxPwsWAcn2o62hWPXNLrFRxx9w9nMoHQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
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]
<mailto:[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
<https://groups.google.com/d/msgid/django-users/CA%2By6opqPLy7Puzxj2Ha%2BH9tJgfCJQJPcgsdrKsjNM6_CAckV%2BA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
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]
<mailto:[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
<https://groups.google.com/d/msgid/django-users/CAO_yRT1rji_cYTa5HXCVcQDz661D2P%2BpzGov2_BQeGtf4FQ9xA%40mail.gmail.com?utm_medium=email&utm_source=footer>.