我目前正在實現一個應用程序的用戶註冊。我試圖將django.auth的默認行爲改爲使用電子郵件而不是用戶名。我想我會使用自定義身份驗證後端。我希望用戶仍然能夠提供用戶名。django.auth操縱模型字段/允許在用戶名空間
我怎樣才能讓像「李四」的用戶名空間不改變django.auth車型領域。
如何使電子郵件字段成爲必需。目前我的UserCreation表單中的clean_email方法會在電子郵件爲空時引發驗證錯誤。一定會有更好的辦法。
感謝布蘭登和安德魯·斯萊奇這裏是我的解決方案:
class RegisterForm(UserCreationForm):
username = forms.RegexField(label=("Username"), max_length=30, regex=r'^[ \t\r\n\f\[email protected]+*-]+$',
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不會工作。
謝謝。這很容易。我已經覆蓋了UserCreationForm。我現在覆蓋了用戶名字段。 – jarred 2012-03-22 19:16:13
太棒了。真高興你做到了。 – Brandon 2012-03-22 20:54:41