首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何禁用django注册密码help_text

如何禁用django注册密码help_text
EN

Stack Overflow用户
提问于 2019-06-06 00:29:38
回答 1查看 427关注 0票数 0

我是新在姜戈,我有一个新用户的姜戈注册页面,我和我需要禁用密码和用户名和help_text.I通过一些类似的问题来禁用help_texts,但似乎没有禁用密码help_texts。

下面是我的代码:

代码语言:javascript
运行
复制
class CustomUserCreation(UserCreationForm):
    email = forms.EmailField()
    class Meta:
        model = User
        fields = ['username','email','password1','password2',]
        help_texts = {
            'email' : None,
            'username' : None,
            'password1' : None,
            'password2' : None,

        }

class UpdateUser(forms.ModelForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ['email','username',]

class UpdateProfile(forms.ModelForm):
    profile_picture = forms.ImageField()
    class Meta:
        model = Profile
        fields = ['profile_picture',]

和我的init

代码语言:javascript
运行
复制
from django.contrib.auth.forms import UserCreationForm
from django import forms

class UserCreateForm(UserCreationForm):
    email = forms.EmailField(required=True)

    def __init__(self, *args, **kwargs):
        super(UserCreateForm, self).__init__(*args, **kwargs)

        for fieldname in ['username', 'password1', 'password2']:
            self.fields[fieldname].help_text = None

print UserCreateForm()
EN

回答 1

Stack Overflow用户

发布于 2019-06-06 02:55:44

我现在将重写你的类,,,

1)

代码语言:javascript
运行
复制
class CustomUserCreation(UserCreationForm):
    ''' avoid help_text with email, username, password1, password2 (As you want)'''
    email = forms.EmailField()

    class Meta:
        model = User
        fields = (
            'username',
            'email',
            'password1',
            'password2'
        )

    def __init__(self, *args, **kwargs):
        super(CustomUserCreation, self).__init__(*args, **kwargs)
        for field_name in ('username', 'email', 'password1', 'password2'):
            self.fields[field_name].help_text = ''

2)

代码语言:javascript
运行
复制
class UpdateUser(forms.ModelForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ['email','username',]

class UpdateProfile(forms.ModelForm):
    profile_picture = forms.ImageField()
    class Meta:
        model = Profile
        fields = ['profile_picture',]

3)

代码语言:javascript
运行
复制
class UserCreateForm(UserCreationForm):
    email = forms.EmailField(required=True)

    def __init__(self, *args, **kwargs):
        super(UserCreateForm, self).__init__(*args, **kwargs)

        for field_name in ('email', 'username', 'password1', 'password2'):
            self.fields[field_name].help_text = ''

class Meta中的help_texts属性负责override help_text的字段,这些字段是从Model (使用ModelForm时)生成的。在您的例子中,使用覆盖__init__并直接读取字段(所有字段,不管它是从Model生成的,或者只是Form的属性被填充到表示OrderedDictself.fields实例属性中),然后覆盖每个字段的help_text是非常好的主意。

希望,这对你有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56464571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档