首页 > 解决方案 > 31/5000 如何插入新用户?

问题描述

我正在尝试创建一个新的个性化用户,当我点击注册按钮时它没有为我注册任何东西,下面我显示我的代码来帮助我提前解决这个问题非常感谢

这是forms.py

class FormularioUsuario(forms.ModelForm):

    password1=forms.CharField(label='Contraseña', widget=forms.PasswordInput(
        attrs={
            'class': 'form-control',
            'placeholder':'Ingrese su Contraseña...',
            'id': 'password1',
            'required':'required',
        }
    ))

    password2=forms.CharField(label='Contraseña de Confirmacion', widget=forms.PasswordInput(
        attrs={
            'class': 'form-control',
            'placeholder':'Ingrese nuevamente su Contraseña...',
            'id': 'password2',
            'required':'required',
        }
    ))

    class Meta:
        model=Usuario
        fields=('email', 'username', 'nombres', 'apellidos')
        widgets ={
            'email': forms.EmailInput(
                attrs={
                    'class': 'form-control',
                    'placeholder': 'Correo Electronico',
                }
            ),
            'nombres': forms.TextInput(
                attrs={
                    'class': 'form-control',
                    'placeholder': 'Ingrese su nombre',
                }
            ),
            'apellidos': forms.TextInput(
                attrs={
                    'class': 'form-control',
                    'placeholder': 'Ingrese su Apellido',
                }
            ),
            'username': forms.TextInput(
                attrs={
                    'class': 'form-control',
                    'placeholder': 'Ingrese su Nombre de Usuario',
                }
            )
        }

    def clean_password2(self):

        print(self.cleaned_data)
        password1=self.cleaned_data.get('password1')
        password2=self.cleaned_data.get('password2')

        if password1 != password2:
            raise forms.ValidationError('Contraseñas no coinciden')
        return password2

    def save(self, commit=True):
        user=super().save(commit=False)
        user.set_password(self.cleaned_data['password1'])
        if commit:
            user.save()
        return user

这是views.py

class RegistrarUsuario(CreateView):
    model=Usuario
    form_class=FormularioUsuario
    template_name='usuario/crear_usuario.html'
    success_url = reverse_lazy('usuario:listar_usuarios')

这是models.py

class Usuario(AbstractBaseUser):
    username = models.CharField('Nombre de usuario',unique = True, max_length=100)
    email = models.EmailField('Correo Electrónico', max_length=254,unique = True)
    nombres = models.CharField('Nombres', max_length=200, blank = True, null = True)
    apellidos = models.CharField('Apellidos', max_length=200,blank = True, null = True)
    imagen = models.ImageField('Imagen de Perfil', upload_to='perfil/', max_length=200,blank = True,null = True)
    usuario_activo = models.BooleanField(default = True)
    usuario_administrador = models.BooleanField(default = False)
    objects = UsuarioManager()

    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['email','nombres']

    def __str__(self):
        return f'{self.nombres},{self.apellidos}'

    def has_perm(self, perm,obj=None):
        return True

    def has_module_perms(self, app_label):
        return True

    @property
    def is_staff(self):
        return self.usuario_administrador

这是 urls.py

app_name='usuario'

urlpatterns=[
    #URL para el menu de inicio
    path('', index),
    path('usuario/index/',login_required(index), name='index'),

    path('accounts/login/',Login.as_view(), name='login'),
    path('logout/',login_required(logoutUsuario), name='logout'),
    
    path('listado_usuarios/', login_required(ListadoUsuario.as_view()), name='listar_usuarios'),
    path('registrar_usuario/', RegistrarUsuario.as_view(), name='registrar_usuario'),

    ]

如果你需要别的东西可以告诉我吗

标签: django

解决方案


推荐阅读