Kann ich Djangos Feld auth_user.username 100 Zeichen lang ändern, ohne etwas zu kaputt zu machen?

7

Bevor jemand diese Frage als Duplikat dieser Frage markiert, Kann djangos auth_user.username varchar (75) sein? Wie kann das gemacht werden? oder andere Fragen zu SO, bitte lies diese Frage. Die Frage, mit der ich mich verbunden habe, stellt diese Frage genau, aber die Antworten gehen leider nicht auf die gestellte Frage ein.

Kann ich das Feld auth_user.username auf 100 Zeichen ändern, indem ich Folgendes tue:

  1. Führen Sie die ALTER-Tabelle in der Datenbank für das Feld username
  2. aus
  3. Ändere die max_length hier: username = models.CharField(_('username'), max_length=30, unique=True, help_text=_("Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters"))
Würde es irgendwas in Django kaputt machen, wenn ich das täte?

Dass dies kaputt geht, wenn ich Django auf eine höhere Version aktualisiere, ist kein Problem. Ich suche auch keine anderen Authentifizierungsmethoden. Ich möchte nur wissen, ob ich etwas kaputt machen würde, wenn ich das machen würde.

    
Arpit Rai 28.01.2011, 12:00
quelle

7 Antworten

20

Sie müssen die maximale Länge an mehreren Stellen monkey-patchen: die Beschreibung des Modellfelds, die Beschreibung des Formularfelds und die Maximallängenvalidatoren. Max-Länge-Validatoren sind sowohl an Formularfelder als auch an Modellfelder angehängt.

Hier ist ein Code-Snippet, das alles patchen wird:

Ссылка (getestet mit Django 1.2 und 1.3)

Aktualisierung: Gute Nachrichten! Seit django 1.5 können Sie das Benutzermodell überschreiben: Anpassen des Benutzermodells

    
Ski 28.01.2011, 18:02
quelle
1

Es ist kein Schaden dabei. Ändern Sie einfach die Länge im Modell und in der Datenbank:)

    
Tommaso Barbugli 28.01.2011 14:19
quelle
1

Erstellen Sie ein Benutzerprofilmodell, fügen Sie Ihr Feld für sehr lange Benutzernamen hinzu und verwenden Sie es. Natürlich macht dies das echte Benutzername-Feld nutzlos, aber es ist viel besser als das Hacken von Django-Code, der Sie in Schwierigkeiten bringt, wenn Sie es upgraden müssen.

    
shanyu 28.01.2011 18:48
quelle
1

Für mich funktioniert der folgende Code und ist einfach gut.

%Vor%

nachdem Sie Ihre Migration ausführen können

    
Mateus Padua 21.10.2014 11:56
quelle
0

Wenn Sie die Datenbank manuell sowie das Modell entsprechend ändern, sollte es kein Problem geben.

Sie können auch anders zurück wechseln, und ich würde sagen, ein Backup nur für den Fall machen, aber ich bin mir nicht sicher, ob es sogar notwendig ist

    
zenna 28.01.2011 12:07
quelle
0

Für zukünftige Bedürfnisse ist dies der beste und einfachste Weg, den ich herausgefunden habe:

Ссылка

    
pedrotorres 10.10.2013 23:55
quelle
0

Eine andere Lösung besteht darin, Ihren Authentifizierungscode zu ändern. Wenn sich ein neuer Benutzer anmeldet, gibt er eine E-Mail ein, die Sie im E-Mail-Feld speichern. Wenn Ihre E-Mail-Adresse 30 Zeichen lang ist, kürzen Sie sie, bevor Sie sie in das Benutzerfeld eingeben. Ändern Sie dann Ihre Anmeldeauthentifizierung für neue Anmeldungen.

    
Pstrazzulla 16.09.2014 19:06
quelle

Tags und Links