2012-02-07 104 views
2

我目前正在構建一個django應用程序。我有一個表格,用戶輸入他/她的數據進行註冊。我使用用戶表(django.contrib.auth.models),並且我還有一個UserProfile表,用於存儲其他信息。我的問題是如何將我驗證(無特殊字符,不能有空格,等等),我發送到用戶名:通過Django驗證用戶名的驗證

new_user = User.objects.create_user(username, email, password) 

我使用的是形成從用戶配置模式。我嘗試驗證我的形式: form.is_valid():

但隨着用戶字段是一個外鍵,它變成了一個選擇題場,所以它不驗證,除非用戶已經存在於用戶表。

所以我怎麼會叫

User.objects.create_user(username, email, password) 

以我的經驗之前驗證用戶名,create_user允許任何作用戶名。

任何幫助表示讚賞。

回答

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