将forms.RegexField转换为Django中的较低字符

时间:2013-08-29 08:56:50

标签: python regex django django-forms

我的表单中包含字段'用户名'。这个领域是一个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()'转换为较低的字符但发生错误。显然.lower()适用于charfields。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您还没有说过您尝试拨打lower()的位置。您应该使用表单的clean_username方法执行此操作:

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