Django: Verwenden von benutzerdefinierten AUTH-System, warum die User-Modell immer noch gebraucht?
-
21-09-2019 - |
Frage
Ich bin ein SAAS entwickelt und mit die härteste Zeit meines Gehirns Umwickeln, warum ich brauche für etwas anderes als ich selbst „User“ zu verwenden. Ich weiß nicht, warum, aber es macht mich queezy zu denken, dass ich, als Entwickler / admin der gesamten Software, mit vollem Zugriff Django Admin (wie das Auge von Sauron), habe die gleiche Art von User-Objekt als ein „Konto "Inhaber‚Userprofile‘hat. Bitte helfen Sie mir zu verstehen, warum dies notwendig ist.
Beispiel:
class Account(models.Model): # represents copporate customer
admin = models.ForeignKey(User)
# other fields ...
class UserProfile(models.Model):
user = models.ForeignKey(User)
account = models.ForeignKey(Account)
Es fühlt sich an wie ich bin die eingebaute Admin-Funktionalität mit meinem Kontoinhaber Nutzer Funktionalität mische. Ist dies nur zum Zwecke der Elemente wie request.user Wiederverwendung usw.?
Lösung
Nun, die Wiederverwendung von Code und die Funktionalität könnte ein glücklicher Nebeneffekt sein, aber im Grunde glaube ich nicht, dies ist gebrochen.
Ein Nutzer stellt jemand mit Ihrer Website. An der Basis Ebene spielt es keine Rolle, wer diese Person ist oder welche Funktionen oder Funktionalität, die sie brauchen -. Nur, dass sie Anfragen stellen und in irgendeiner Weise identifiziert werden
Weitere Funktionen können in verschiedenen Schichten hinzugefügt werden, entweder in Komponenten wie Gruppen oder Berechtigungen gebaut durch, oder durch etwas anderes bauen Sie auf sich selbst, wie Sie in Ihrem Beispiel tun.