gpt4 book ai didi

django.auth 操作模型字段/允许用户名中的空间

转载 作者:行者123 更新时间:2023-12-04 05:53:08 26 4
gpt4 key购买 nike

我目前正在实现应用程序的用户注册。我想更改 django.auth 默认行为以使用电子邮件而不是用户名。我想我会使用自定义身份验证后端。我希望用户仍然能够提供用户名。

  • 如何在不更改 django.auth 模型中的字段的情况下允许用户名中的空格,如“john doe”。
  • 如何使 emailfield 成为必需。目前,如果电子邮件为空,我的 UserCreation 表单中的 clean_email 方法会引发验证错误。一定会有更好的办法。

  • 感谢 Brandon 和 Andrew Sledge,这是我的解决方案:
    class RegisterForm(UserCreationForm):
    username = forms.RegexField(label=("Username"), max_length=30, regex=r'^[ \t\r\n\f\w.@+*-]+$',
    help_text = ("Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only."),
    error_messages = {'invalid': ("This value may contain only letters, numbers and @/./+/-/_ characters.")})
    class Meta:
    model = User

    我从 UserCreationForm 复制了该字段。重要的部分是将\t\r\n\f 添加到正则表达式中。\s 不起作用。

    最佳答案

    您始终可以覆盖 contrib.auth.forms 中的 UserCreationForm 以实现不同的用户名字段并提供您自己的验证。只需继承表单并添加您自己的用户名字段,或在 __init__ 中覆盖它。类(class)的。

    关于django.auth 操作模型字段/允许用户名中的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9828177/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com