2011-01-14 5 views
17

Modelde tanımlanan 30 karakterden büyük harfleri aşmak için kullanıcı adı boyutunu en yüksek duruma getirmem gerekiyor. Nasıl yapılabilir? Sadece modelin özelleştirilmesinin doğru ya da güvenli bir yol olduğundan emin değilim.Django auth: maks. Kullanıcı adı uzunluğunu artırma

+3

'username' uzunluğu 150 karakter ile django 1.10 arttı gördü. https://docs.djangoproject.com/en/1.10/releases/1.10/#abstractuser-username-max-length-increased-to-150. Eğer hala yeterli değilse, 'özel bir kullanıcı modeli' kullanmanızı öneririz. –

cevap

11

burada Bu cevap ilginç bir yaklaşımdır: Can django's auth_user.username be varchar(75)? How could that be done?

Kullanıcı modeline maks_uzunluk niteliğini geçersiz kılar, ancak DB sütunu not Küçük bir uygulama tabloları syncdb ed

varlık değilse değiştirilmesi gerekiyor

Şahsen "Kesin bir piyangoyu kazandınız!" Konulu süper bir çarpışma olup olmadığını bildiren kullanıcı adımım olarak kesilmiş bir hash kullanıyorum. Gelecekteki ihtiyaçları için

2

AFAIK, tam olarak bunu istiyorsanız auth.user alt sınıfına ihtiyacınız var. Daha basit ve daha az maceracı bir çözüm, daha uzun bir username alanına sahip bir kullanıcı profili modelinin uygulanması olabilir. Artıklığı önlemek için, örneğin, gerçek username alanını rastgele oluşturulmuş sayılarla doldurun ve kullanarak çıkın.

+0

Bir "kullanıcı adı" için iki alanı kaydetmek tamamen yanlıştır. 30 karakterde aynı olan ancak bundan sonra farklılık gösteren kullanıcı adları nedir? –