grubenfox hat geschrieben: ↑Donnerstag 9. Februar 2023, 14:48
die Klasse passend konfigurieren (u.a vielleicht mit fields)
Code: Alles auswählen
class BenutzerAdmin(admin.ModelAdmin):
fields = ('vorname', 'nachname', 'klasse', 'startdatum', 'last_login') # je nach dem wie die Elemente (Felder bzw. Methoden) in der Klasse Benutzer heißen
und zusammen mit der Klasse Benutzer im Admin-Interface registrieren
Das habe ich ja probiert, aber irgendwie geht das so nicht.
Der erste Code.
bewirkt ja doch erstmal nicht - oder?
und der zweite:
Code: Alles auswählen
class BenutzerAdmin(admin.ModelAdmin):
fields = ('vorname', 'nachname', 'klasse', 'startdatum', 'last_login')
geht so nicht, denn 'vorname', 'nachname und, 'klasse' befinden sich in meiner Tabelle"Profil" und 'startdatum' und 'last_login' in der Tabelle auth_user'.
Möglicherweise stehe ich aber auch wieder auf dem Schlauch.
Ich bin aber ganz stolz, ich habe einen Teil selbst hinbekommen. Ich habe in meinem model "Profil" folgendes eingefügt:
Code: Alles auswählen
class Profil(models.Model):
user = models.OneToOneField(User, related_name='profil', on_delete=models.CASCADE )
nachname = models.CharField(max_length=30)
vorname = models.CharField(max_length=30)
klasse = models.CharField(max_length=10)
def Start(self):
return self.user.date_joined.date()
def Letzt(self):
return self.user.last_login
und in admin.py:
Code: Alles auswählen
class ProfilAdmin(admin.ModelAdmin):
list_filter=("gruppe", )
list_display = ('vorname', 'nachname', 'klasse', 'Start', 'Letzt')
Jetzt bekomme ich die gewünschte Anzeige in Spalten - mit Anmeldetag und letztem Login. Ich kann auch nach Vorname, Nachname und Klasse sortieren, allerdings nicht nach Anmeldetag und letztem Login - die Daten sind ja nun mal auch in der anderen Tabelle.
Ich müsste also doch nur in "auth_user" dieses "list_display" um "date_joined" und "last_login" ergänzen können (und vielleicht auch dort eine Funktion ergänzen, die mir Vorname, Nachname und Klasse aus der "Profil"-Tabelle liefert).
Ach übrigens: Der Filter nach "gruppe" funktioniert.