Ist es möglich, Djangos Benutzerauthentifizierungsfunktionen mit mehr als einem Profil zu verwenden?Mehr als ein Profil in Django?
Zur Zeit habe ich eine settings.py-Datei, die diese in sich hat:
AUTH_PROFILE_MODULE = 'auth.UserProfileA'
und eine models.py-Datei, die diese in sich hat:
from django.db import models
from django.contrib.auth.models import User
class UserProfileA(models.Model):
company = models.CharField(max_length=30)
user = models.ForeignKey(User, unique=True)
auf diese Weise, wenn ein Benutzer Loggen Sie sich ein, ich kann das Profil leicht erhalten, weil der Benutzer eine Methode get_profile() hat. Ich möchte jedoch UserProfileB hinzufügen. Wenn man sich ein wenig umschaut, scheint es der Ausgangspunkt zu sein, eine Superklasse zu erstellen, die als AUTH_PROFILE_MODULE verwendet werden kann, und sowohl UserProfileA als auch UserProfileB von dieser Superklasse erben. Das Problem ist, ich glaube nicht, dass die Methode get_profile() das korrekte Profil zurückgibt. Es würde eine Instanz der Oberklasse zurückgeben. Ich komme aus einem Java-Hintergrund (Polymorphismus), also bin ich mir nicht sicher, was genau ich tun sollte.
Danke!
Edit:
Nun fand ich einen Weg, um es über etwas ein „Erbe Hack“ genannt zu tun, die ich an dieser Stelle gefunden http://djangosnippets.org/snippets/1031/
Es funktioniert wirklich gut, aber von einem Java-Hintergrund kommen, wo das geschieht automatisch, ich bin ein wenig verunsichert durch die Tatsache, dass jemand das programmieren musste und es einen "Hack" nannte, um es in Python zu machen. Gibt es einen Grund, warum Python dies nicht aktiviert?
Ich habe das gleiche Problem. Ich frage mich nur, wofür hast du dein 'AUTH_PROFILE_MODULE' platziert? – Modelesq