【问题标题】:Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only必需的。 30 个字符或更少。仅限字母、数字和 @/./+/-/_
【发布时间】:2016-07-24 09:13:39
【问题描述】:

我在表单上使用 django user_auth 的用户名字段显示:“必需。30 个字符或更少。字母、数字和 @/./+/-/_ 仅在其旁边”,如下图所示.任何人都知道如何隐藏它或为什么它会出现在表单上?

【问题讨论】:

    标签: python django authentication registration


    【解决方案1】:

    该文本存在是因为 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 的注释部分。

    【讨论】:

    • 好的,但我没有添加帮助文本。有什么方法可以仅使用字段名称将其隐藏在模型中?
    • 您还没有告诉我们关于您正在做什么的任何事情,例如您是如何创建表单的。在这种情况下,我所能做的就是将您指向文档。
    【解决方案2】:

    我通过在表单中​​添加这一行来解决它。

    username = forms.CharField(help_text=False)
    

    谢谢。

    【讨论】:

      猜你喜欢
      • 2016-06-04
      • 1970-01-01
      • 2023-01-18
      • 2020-12-06
      • 2011-04-19
      • 2011-10-02
      • 2014-05-12
      • 2013-05-27
      • 1970-01-01
      相关资源
      最近更新 更多