Pracuję nad projektem w django, który wymaga oddzielnych grup użytkowników w ich własnej przestrzeni nazw username
.Django - zezwalaj na zduplikowane nazwy użytkowników
Na przykład mogę mieć wiele "organizacji", a username
powinna być unikalna w ramach tej organizacji.
Wiem, że mogę to zrobić za pomocą innego modelu, który zawiera identyfikator nazwa użytkownika/organizacji, ale nadal pozostawia to bezużyteczne (i wymagane) pole na defesst django auth User
, że będę musiał wypełnić coś.
Pisałem już przez własny serwer uwierzytelniający, który uwierzytelnia użytkownika przed LDAP. Jednak, jak wspomniałem wcześniej, wciąż mam problem z zapełnianiem/ignorowaniem pola username
dla domyślnego użytkownika django.
Czy istnieje sposób na usunięcie ograniczenia unikalności dla użytkownika auth Django dla użytkownika username
?
Nie jestem pewien, czy to zadziała. Atrybut 'unique' jest propagowany do bazy danych jako ograniczenie w tym polu. Gdy to zrobisz, poprawianie metadanych Django nie pomoże. Jeśli nigdy nie zamierzasz używać * (to znaczy wyświetlać/modyfikować) nazwy użytkownika, wystarczy, aby wszystko było unikatowe. Na przykład. co sugeruje DrBloodmoney. –
To * działa * (próbowałem), ale ponieważ uzyskuje dostęp do '_meta', polega na wewnętrznej implementacji, a nie na udokumentowanym interfejsie, więc nie chcę go używać. +1, ale działa. –
Cóż, działa na ograniczeniach NOT NULL (próbowałem), więc nie widzę, dlaczego nie. Dopóki "MyUserModel" jest klasą dziedziczącą po "auth.User", a linia jest umieszczana bezpośrednio po modelu, wydaje się, że działa. Chodzi o to, że to trochę brzydki hack. –