Sending mail

44 views
Skip to first unread message

Paras Jain

unread,
Nov 8, 2019, 11:02:44 AM11/8/19
to django...@googlegroups.com
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
IMG_20191108_212345.jpg

Daniel Angel

unread,
Nov 8, 2019, 11:59:45 AM11/8/19
to django...@googlegroups.com
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(selfemailpassword**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(selfemailpassword=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(selfemailpassword**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(AbstractBaseUserPermissionsMixin):
    """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=30blank=True)
    last_name = models.CharField(_('Apellido'), max_length=150blank=True)
    rut = models.CharField(_('Rut'), validators= [validaRut], max_length=10,blank=Truehelp_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(selfsubjectmessagefrom_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= 'XXX...@gmail.com'
EMAIL_HOST_PASSWORD='password'
EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'


--
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 django-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAMtmBS_R739__nZ2-ZYxPwsWAcn2o62hWPXNLrFRxx9w9nMoHQ%40mail.gmail.com.

DANIEL URBANO DE LA RUA

unread,
Nov 8, 2019, 4:05:13 PM11/8/19
to django...@googlegroups.com

Franz Ulenaers

unread,
Nov 10, 2019, 6:55:09 AM11/10/19
to django...@googlegroups.com
- 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

franz ulenaers

unread,
Nov 10, 2019, 5:49:43 PM11/10/19
to django...@googlegroups.com
I am missing here the file  = views.py
Also the " 
from apps.validators import validaRut " gives problems because i am missing also the validators.py file

Op 10/11/2019 om 12:54 schreef Franz Ulenaers:
Reply all
Reply to author
Forward
0 new messages