saludos excelentes videos espero me puedas ayudar este es el curso de django que he estado necesitando """"""""" constans """"""""" ERROR_MESSAGES_USER = {'required': 'El username es requerido', 'unique' : 'El username ya existe', 'invalid': 'El username es incorrecto'} ERROR_MESSAGES_PASSWORD = {'required': 'La password es requerida'} ERROR_MESSAGES_EMAIL = {'required': 'El campo email es requerido', 'invalid': 'Ingrese un correo valido'}
"""" function global para refactorizar clean_new_password """ def must_be_gt(value_password): if len(value_password)<3: raise forms.ValidationError('el password debe contener 5 caracteres')
""""""""" class """""""""
class LoginUserForm(forms.Form): username = forms.CharField(max_length=20) password = forms.CharField(max_length=20, widget = forms.PasswordInput())
class CreateUserForm(forms.ModelForm): username = forms.CharField(max_length=20, error_messages = ERROR_MESSAGES_USER) password = forms.CharField(max_length=20, error_messages= ERROR_MESSAGES_PASSWORD, widget = forms.PasswordInput()) email = forms.CharField(error_messages= ERROR_MESSAGES_EMAIL) class Meta: model = User fields = ('username', 'password', 'email')
class EditUserForm(forms.ModelForm):
username = forms.CharField(max_length=20, error_messages = ERROR_MESSAGES_USER)
email = forms.CharField(error_messages= ERROR_MESSAGES_EMAIL)
class Meta:
model = User
fields = ('username','email', 'first_name', 'last_name')
class EditPasswordForm(forms.Form): password = forms.CharField(max_length=20, error_messages= ERROR_MESSAGES_PASSWORD, widget = forms.PasswordInput()) new_password = forms.CharField(max_length=20, error_messages= ERROR_MESSAGES_PASSWORD, widget = forms.PasswordInput(), validators = [must_be_gt]) repeat_password = forms.CharField(max_length=20, error_messages= ERROR_MESSAGES_PASSWORD, widget = forms.PasswordInput(), validators = [must_be_gt])
def clean(self):
clean_data = super(EditPasswordForm,self).clean()
password1 = clean_data.get('new_password')
password2 = clean_data.get('repeat_password')
if password1 != password2:
raise forms.ValidationError('Las password no son los mismos')
ESTE ES EL VIEW
@login_required(login_url = 'client:login') def edit_password(request):
form = EditPasswordForm(request.POST or None)
if request.method == 'POST':
if form.is_valid():
current_password = form.cleaned_data['password']
new_password = form.cleaned_data['new_password']
if authenticate(username = request.user.username, password = current_password):
request.user.set_password(new_password)
request.user.save()
update_session_auth_hash(request, request.user)
messages.success(request, 'password actualizado, messages')
else:
messages.error(request, 'No es posible actualizar el password, message')
Y EL TEMPLATE
edit password{% if messages %}
-
{% for message in messages %}
- <{{ message }} {% endfor %}