转换表单.RegexField降低Django中的字符数



我有一个表单,它有一个字段"username"。此字段是一个rejexfield。以下是代码:

username = forms.RegexField(regex=r'^[w.@a-z0-9+-]+$',
                            max_length=30,
                            widget=forms.TextInput(attrs=attrs_dict),
                            label=_("Username"),
                            error_messages={'invalid': _("This value may contain only letters, numbers and @/./+/-/_ characters.")})

我希望这个字段应该以较低的字符保存。

例如,如果我将用户名输入为aBCd123,则应将其另存为aBCd123

我尝试过将"form.username.lower()"转换为小写字符,但出现了错误。Apparanty.lower()适用于charfields。

我该如何解决这个问题?

您还没有说明在哪里尝试调用lower()。您应该使用表单的clean_username方法:

def clean_username(self):
    username = self.cleaned_data.get('username')
    if username:
        return username.lower()

最新更新