2011-01-14 39 views
17

Tôi cần tăng kích thước tên người dùng tối đa trong auth để vượt quá 30 ký tự được xác định trong mô hình. Làm thế nào nó có thể được thực hiện? Tôi không chắc chắn rằng chỉ cần tùy chỉnh mô hình là đúng hay cách an toàn.Django auth: tăng chiều dài tên người dùng tối đa

+3

'username' đã tăng trong django 1,10-150 chars. https://docs.djangoproject.com/en/1.10/releases/1.10/#abstractuser-username-max-length-increased-to-150. Nếu vẫn chưa đủ, họ khuyên bạn nên 'sử dụng mô hình người dùng tùy chỉnh'. –

Trả lời

11

Câu trả lời này, đây là một cách tiếp cận thú vị: Can django's auth_user.username be varchar(75)? How could that be done?

Một ứng dụng nhỏ đó sẽ ghi đè các thuộc tính max_length trên mô hình dùng, nhưng lưu ý cột DB của bạn cần phải được sửa đổi nếu bảng không bị syncdb ed

Cá nhân tôi sử dụng một băm được cắt làm tên người dùng của tôi để thông báo cho tôi nếu có một vụ va chạm không chắc chắn, với chủ đề "Bạn vừa thắng xổ số!"

2

AFAIK, bạn cần phải phân loại auth.user nếu bạn muốn chính xác điều đó. Một giải pháp đơn giản và ít mạo hiểm hơn có thể triển khai mô hình hồ sơ người dùng với trường dài hơn username. Để tránh dự phòng, bạn có thể ví dụ điền vào trường username thực tế với các số được tạo ngẫu nhiên và bỏ sử dụng nó.

+0

Lưu hai trường cho 'tên người dùng' hoàn toàn sai. Điều gì về tên người dùng giống nhau trong 30 ký tự đầu tiên nhưng khác sau đó? –

Các vấn đề liên quan