Czuję się dość głupio, gdy o to pytam, ale i tak to zrobię. Odwołanie do interfejsu API "Użytkownicy" w dokumentacji Django "User authentication in Django" (w. 1.4) mówi, że nazwa użytkownika może zawierać tylko litery, cyfry i znaki @, +,., - i _. Mimo to mogę przejść do powłoki Python i wykonać następujące czynności:Dlaczego models.User dopuszcza nieprawidłowe znaki w nazwie użytkownika?
>>> from django.contrib.auth.models import User
>>> u = User.objects.create_user('joe#')
Dlaczego to nie powoduje wyjątku? Spojrzałem na kod źródłowy w ../contrib/auth/models.py i nie wydaje się, aby zgłaszał nieprawidłowe znaki. Co tu się dzieje? Wygląda na to, że jeśli chcesz złapać błędną nazwę użytkownika, musisz to zrobić poprzez weryfikację formularza.
Rozumiem. Wielkie dzięki, Raunak! – William
Czy wyrażenie regex w kodzie zawiera znak podkreślenia? – Fydo
Nie myśl, że to dobry pomysł, ponieważ powoduje to niespójność. Zobacz [ten numer] (https://github.com/pennersr/django-allauth/issues/1321) –