为什么不工作注册用户?

2024-04-27 03:30:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我不能注册用户的工作,只要重新登录页面,有人可以帮我

表格.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

我用它注册一个用户并调用一个HTML页面

视图.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)

型号.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

为什么是错误的代码,因为我没有找到错误。非常感谢


Tags: selfformdataemailusernamedeformspassword