i can't registration of user work, just relog the page, someone can help me
form.py
class RegistroUserForm(forms.Form):
username = forms.CharField(min_length=5,widget=forms.TextInput(attrs={'class': 'form-control'}))
email = forms.EmailField(widget=forms.EmailInput(attrs={'class': 'form-control'}))
password = forms.CharField(min_length=5,widget=forms.PasswordInput(attrs={'class': 'form-control'}))
password2 = forms.CharField(min_length=5,widget=forms.PasswordInput(attrs={'class': 'form-control'}))
def clean_username(self):
"""Comprueba que no exista un username igual en la db"""
username = self.cleaned_data['username']
if AdministracionUsuarios.objects.filter(nombre_de_usuario=username):
raise forms.ValidationError('Nombre de usuario ya registrado.')
return username
def clean_email(self):
"""Comprueba que no exista un email igual en la db"""
email = self.cleaned_data['email']
if AdministracionUsuarios.objects.filter(email=email):
raise forms.ValidationError('Este E-mail ya se encuentra registrado.')
return email
def clean_password2(self):
"""Comprueba que password y password2 sean iguales."""
password = self.cleaned_data['password']
password2 = self.cleaned_data['password2']
if password != password2:
raise forms.ValidationError('Las contraseñas no coinciden.')
return password2
i use this to register a user and call in a a page HTML
view.py
def index(request):
notifi = Notificaciones.objects.filter(user=request.user.id, Estado=False)
usuarios = MiUsuario.objects.filter(nombre_de_usuario=request.user.id)
if request.method == 'POST':
form = RegistroUserForm(request.POST, request.FILES)
if form.is_valid():
# En caso de ser valido, obtenemos los datos del formulario.
# form.cleaned_data obtiene los datos limpios y los pone en un
# diccionario con pares clave/valor, donde clave es el nombre del campo
# del formulario y el valor es el valor si existe.
cleaned_data = form.cleaned_data
username = cleaned_data.get('username')
password = cleaned_data.get('password')
email = cleaned_data.get('email')
# E instanciamos un objeto User, con el username y password
user_model = AdministracionUsuarios.objects.crear_usuario(nombre_de_usuario=username,email=email, password=password)
# Y guardamos el objeto, esto guardara los datos en la db.
user_model.save()
# Ahora, creamos un objeto UserProfile, aunque no haya incluido
# una imagen, ya quedara la referencia creada en la db.
user_profile = MiUsuario()
# Al campo user le asignamos el objeto user_model
user_profile.user = user_model
# Por ultimo, guardamos tambien el objeto UserProfile
user_profile.save()
else:
# Si el mthod es GET, instanciamos un objeto RegistroUserForm vacio
form = RegistroUserForm()
context = {
'form': form,
'notifi': notifi,
'usuarios': usuarios
}
return render(request,'app/index.html',context)
models.py
class AdministracionUsuarios(BaseUserManager):
def crear_usuario(self,nombre_de_usuario,nombre_completo,email,Cargo_de_Contacto,Celular,Pagina_web,Numero_de_identificacion,Nombre_de_la_empresa,Telefono,Ext,Genero,Ciudad,password=None):
if not email:
raise ValueError('Usuario deben tener una dirección de e-mail')
if not nombre_de_usuario:
raise ValueError('Usuario necesita tener un nombre de usuario')
user = self.model(
nombre_completo=nombre_completo,
nombre_de_usuario=nombre_de_usuario,
email=self.normalize_email(email),
Cargo_de_Contacto=Cargo_de_Contacto,
Celular=Celular,
Pagina_web=Pagina_web,
Numero_de_identificacion=Numero_de_identificacion,
Nombre_de_la_empresa=Nombre_de_la_empresa,
Telefono=Telefono,
Ext=Ext,
Genero=Genero,
Ciudad=Ciudad,
)
user.set_password(password)
user.save(using=self._db)
return user
def crear_superusuario(self,nombre_de_usuario, email,telefono,password):
user = self.crear_usuario(email,
nombre_de_usuario=nombre_de_usuario,
password=password,
telefono=telefono,
)
user.is_admin = True
user.save(using=self._db)
return user
why is wrong with the code, because i don't find the mistake. thanks so much
Have you already tried?