【发布时间】:2016-07-24 09:13:39
【问题描述】:
我在表单上使用 django user_auth 的用户名字段显示:“必需。30 个字符或更少。字母、数字和 @/./+/-/_ 仅在其旁边”,如下图所示.任何人都知道如何隐藏它或为什么它会出现在表单上?
【问题讨论】:
标签: python django authentication registration
我在表单上使用 django user_auth 的用户名字段显示:“必需。30 个字符或更少。字母、数字和 @/./+/-/_ 仅在其旁边”,如下图所示.任何人都知道如何隐藏它或为什么它会出现在表单上?
【问题讨论】:
标签: python django authentication registration
该文本存在是因为 help_text for the form field 已设置为该文本。另请参阅 Creating forms from models documentation 以其他方式设置 help_text 值;例如,它可以在模型字段上设置。
大概是因为有一个字段附加了一个form validator,只有当输入的用户名符合这些规则时才会通过。
如果您从模型构建表单,您可以通过在表单Meta 类上设置help_texts 来覆盖只是此字段:
class YourForm(ModelForm):
class Meta:
model = SomeModel
help_texts = {
'username': None,
}
属性是字段id到文本的映射;将其设置为 None 将完全禁用文本。考虑到任何验证器仍然存在!
你也可以替换整个字段:
class YourForm(ModelForm):
username = forms.RegexField(
label='Username',
max_length=30,
regex=r'^[\w-]+$',
error_message='This value must contain only letters, numbers, hyphens and underscores.')
class Meta:
model = SomeModel
但请阅读模型表单文档的Overriding default fields section 的注释部分。
【讨论】:
我通过在表单中添加这一行来解决它。
username = forms.CharField(help_text=False)
谢谢。
【讨论】: