/ / Django-Follower-Struktur mit manyTomany-Feld kann nicht in Admin angezeigt werden - django, django-admin

Django-Folgerstruktur mit vielenTomatenfeldern, die im Admin nicht angezeigt werden können - django, django-admin

Hier ist mein Follower-Modell:

class SocialProfile(models.Model):
user = models.OneToOneField(User, unique=True)
follows = models.ManyToManyField("self", related_name="followed_by", symmetrical=False)

In Admin:

class SocialprofileAdmin(admin.ModelAdmin):
model = SocialProfile.follows.through

Der obige Admin-Code im Admin gibt mir: Eine Gesamtansicht:

Bildbeschreibung hier eingeben In jedem Profil:

Bildbeschreibung hier eingeben

Ich brauche es nur, um den Benutzernamen anstelle des SocialProfile-Objekts anzuzeigen. Ich habe ein paar Versionen wie dieses versucht, aber sie funktionieren nicht:

class FollowsInline(admin.TabularInline):
model = SocialProfile.follows.through


class UserAdmin(admin.ModelAdmin):
list_display = ("user", "follows")
inlines = [FollowsInline, ]

Antworten:

1 für die Antwort № 1

Zu eine menschenlesbare Darstellung anzeigen Du solltest ein schreiben __str__ (Wenn Python2 verwendet wird, sollte der Name sein __unicode__) Methode auf dem Modell. Django Admin wird diese Methode verwenden, um die Instanzen anzuzeigen, Sie müssen nichts außer Kraft setzen oder anpassen admin.py dafür.

In deinem Fall, so:

class SocialProfile(models.Model):
user = models.OneToOneField(User, unique=True)
follows = models.ManyToManyField("self", related_name="followed_by", symmetrical=False)

def __str__(self):
"""Return human-readable representation"""
return self.user.username