我目前正在构建一个django应用程序。我有一个表单,用户输入他/她的数据进行注册。我使用User表(django.contrib.auth.models),我还有一个UserProfile表,我存储了其他信息。我的问题是如何验证(没有特殊字符,没有空格等)我发送到的用户名:
new_user = User.objects.create_user( username, email, password)
我正在使用UserProfile模型中的表单。我尝试用以下方式验证我的表单: form.is_valid():
但是,由于“用户”字段是外键,它将转换为多选字段,因此除非用户已存在于“用户”表中,否则它不会进行验证。
那么我怎样才能在调用
之前验证用户名User.objects.create_user( username, email, password)
根据我的经验,create_user允许任何用户名。
感谢任何帮助。
答案 0 :(得分:4)
只需在表单中添加一个方法:
def clean_username(self):
username = self.cleaned_data.get('username')
# do whatever checks you want and raise `ValidationError` if there's an issue
return username