2011-01-14 58 views
17

我需要在auth中增加最大用戶名大小,以超過模型中定義的30個字符。 怎麼辦?我不確定只是定製模型是正確的還是安全的。Django身份驗證:增加最大用戶名長度

+3

`username`長度得到了Django的1.10增加至150個字符。 https://docs.djangoproject.com/zh/1.10/releases/1.10/#abstractuser-username-max-length-increased-to-150。如果這還不夠,他們建議您使用「自定義用戶模型」。 – 2016-08-08 09:48:40

回答

11

這裏這個答案是一個有趣的方法: Can django's auth_user.username be varchar(75)? How could that be done?

需要,如果表不是syncdb

進行修改,它覆蓋在用戶模式MAX_LENGTH屬性,但要注意你的數據庫列一個小應用程序

我個人使用修剪過的哈希作爲我的用戶名,它會通知我是否曾發生過不太可能的碰撞,主題爲「您剛剛贏得了抽獎!」

2

AFAIK,如果你想要的話,你需要子類auth.user。更簡單且不太冒險的解決方案可能是實施具有更長的username字段的用戶簡檔模型。爲避免冗餘,您可以使用隨機生成的數字填充實際的username字段,並退出使用它。

+0

爲「用戶名」保存兩個字段是完全錯誤的。那麼30個第一個字符中的用戶名相同但在此之後有所不同? – 2013-11-09 05:20:01