Ich arbeite an einem Projekt in Django, die für separate Benutzergruppen in ihrem eigenen username
Namespace erfordert.Django - Erlaube doppelte Benutzernamen
Zum Beispiel könnte ich mehrere "Organisationen" haben, und username
sollte nur innerhalb dieser Organisation eindeutig sein müssen.
Ich weiß, dass ich dies tun kann, indem ich ein anderes Modell benutze, das einen Benutzernamen/eine Organisations-ID enthält, aber immer noch dieses nutzlose (und erforderliche) Feld auf der defualt django auth User
, die ich mit etwas füllen müsste.
Ich habe bereits von eigenen Auth-Backend geschrieben, die einen Benutzer gegen LDAP authentifiziert. Wie ich bereits erwähnt habe, stehe ich jedoch immer noch vor dem Problem, das Feld username
des Standard-Django-Benutzers zu füllen/zu ignorieren.
Gibt es eine Möglichkeit, die Eindeutigkeitseinschränkung für die username
für Django Auth Benutzer zu löschen?
Ich bin mir nicht sicher, dass das funktionieren wird. Das Attribut 'unique' wird als Einschränkung für dieses Feld an die Datenbank weitergegeben. Sobald das erledigt ist, wird das Verbessern der Django-Metainformationen nicht helfen. Wenn Sie den Benutzernamen niemals * verwenden * (d. H. Anzeigen/ändern), reicht alles aus, um ihn eindeutig zu machen. Z.B. was DrBloodmoney vorschlägt. –
Dieses * funktioniert * (ich habe es versucht), aber da es auf '_meta' zugreift, verlässt es sich auf die interne Implementierung und nicht auf die dokumentierte Schnittstelle, also bin ich vorsichtig, es zu benutzen. +1, aber es funktioniert. –
Nun, es funktioniert auf NOT NULL Constraints (ich habe das versucht), also sehe ich nicht warum nicht. Solange "MyUserModel" eine Klasse ist, die von "auth.User" erbt und die Zeile direkt hinter dem Modell eingefügt wird, scheint dies zu funktionieren. Es ist nur ein leicht hässlicher Hack. –