examples bootstrap django django-models django-forms django-templates django-views

examples - django templates bootstrap



Cómo crear el campo de entrada de contraseña en django (7)

Hola, estoy usando la clase de modelo django con algún campo y un campo de contraseña. En lugar de mostrar texto plano regular, quiero mostrar la entrada de contraseña. Creé una clase de modelo como esta:

class UserForm(ModelForm): class Meta: password = forms.CharField(widget=forms.PasswordInput) model = User widgets = { ''password'': forms.PasswordInput(), }

Pero recibo el siguiente error: NameError: name ''forms'' no está definido.

Estoy usando django versión 1.4.0. Seguí este enlace: Problemas con la contraseña de Django

Sigue recibiendo el mismo error. Que debería hacer. ¿Dónde me estoy equivocando? Por favor ayuda


¿Por qué no crear su propio campo de contraseña que puede usar en todos sus modelos?

from django import forms class PasswordField(forms.CharField): widget = forms.PasswordInput class PasswordModelField(models.CharField): def formfield(self, **kwargs): defaults = {''form_class'': PasswordField} defaults.update(kwargs) return super(PasswordModelField, self).formfield(**defaults)

Entonces, ahora en tu modelo que usas

password = PasswordModelField()


@DrTyrsa es correcto. No olvides tus paréntesis.

from django.forms import CharField, Form, PasswordInput class UserForm(Form): password = CharField(widget=PasswordInput())


Dado que esta pregunta se formuló hace un par de años, y está bien indexada en los resultados de búsqueda, esta respuesta podría ayudar a algunas personas que vienen con el mismo problema pero que usan una versión más reciente de Django.

Estoy usando Django 1.11 pero también debería funcionar para Django 2.0.

Teniendo en cuenta que usa un usuario modelo, supondré que está utilizando el modelo predeterminado de usuario () de Django.

Como el modelo User () ya tiene un campo de contraseña, podemos agregarle un widget.

from django import forms from django.contrib.auth.models import User # also, it will work with a custom user model if needed. # from .models import User class UserRegistrationForm(forms.ModelForm): class Meta: model = User fields = [''username'', ''password''] widgets = { # telling Django your password field in the mode is a password input on the template ''password'': forms.PasswordInput() }

Verifica los documentos

Soy bastante nuevo en Django, si mi respuesta no fue lo suficientemente precisa, háganoslo saber; nos complacería editarlo más adelante.


El widget debe ser una llamada a función, no una propiedad. Usted faltaba el paréntesis.

class UserForm(ModelForm): password = forms.CharField(widget=forms.PasswordInput()) class Meta: model = User


Es muy sencillo.

Debería obtener el campo de formulario de password fuera de la clase Meta .


Lo hice como un seguimiento sin ninguna importación adicional

from django import forms class Loginform(forms.Form): attrs = { "type": "password" } username = forms.EmailField(widget=forms.TextInput(attrs=attrs)) password = forms.CharField(widget=forms.TextInput(attrs=attrs))

La idea proviene del código fuente: https://docs.djangoproject.com/en/2.0/_modules/django/forms/fields/#CharField


Necesita incluir lo siguiente en sus importaciones;

from django import forms