Ich habe ein Setup benutzerdefinierte wie folgt aus:Identifizieren Typ angemeldeten Benutzer von
class CustomUser(AbstractUser):
pass
class Employee(CustomUser):
user = models.OneToOneField(settings.AUTH_USER_MODEL)
# other fields
In settings.py ich den folgenden Schlüssel dann hinzu:
AUTH_USER_MODEL = 'myapp.CustomUser'
ich identifizieren möchten, die angemeldet umleiten sie zu geeigneten Ansichten oder URLs.
In meinem Konto Aktivierung Ansicht, nach ihnen die Anmeldung ich sie auf ihre entsprechenden Seite wie diese
if hasattr(user, 'employee'):
return redirect('edit_employee', slug=user.employee.slug)
else:
return redirect('index')
umleiten Aber das hat nicht das Gefühl, dass Recht, wie ich brauche diese wie zeigt, in anderen Orten zu verwenden, ein anderer Profilseitenlink in den Vorlagen.
Wie kann ich den normalen Benutzer und Mitarbeiter in Sichten und Vorlagen besser identifizieren?
Ich gebe zu, es hat mich irgendwann gebraucht, um Ihren Ansatz zu verstehen. Ich bin bereit, dies zu tun, aber könnten Sie mich bitte auf eine vollständige Lösung mit diesem Ansatz hinweisen? – Animesh
@Animesh Der Code, den ich zur Verfügung gestellt habe, ist ein Ersatz für die Verwendung eines generischen FK und ist voll funktionsfähig. Wenn Sie neue Profilmodelle hinzufügen möchten, sollten Sie 1. ein neues Modell wie "EmployeeProfile" oben erstellen, 2. den neuen Benutzertyp in 'USER_TYPES' hinzufügen 3. ein Item im Wörterbuch hinzufügen, das von der Methode' profile_model' zurückgegeben wird dein neues Profilmodell. –
Danke für die Richtung, ich werde das untersuchen. – Animesh