/ / Django nasledovná štruktúra s mnohými oblasťami, ktoré sa nedajú zobraziť v Admin - django, django-admin

Django nasledovná štruktúra s mnohými oblasťami, ktoré sa nemôžu zobraziť v Admin - django, django-admin

Tu je môj model nasledovateľa:

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

V administrátorovi:

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

Vyššie uvedený administrátorský kód v admin vám dá: Celkový pohľad:

tu zadajte popis obrázku Vo vnútri každého profilu:

tu zadajte popis obrázku

Potrebujem len zobraziť používateľské meno namiesto objektu SocialProfile. Vyskúšal som niekoľko takýchto verzií, ale nefungujú:

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


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

odpovede:

1 pre odpoveď č. 1

na zobraziť ľudsky čitateľnú reprezentáciu mali by ste napísať a __str__ (ak používate python2 by mal byť názov __unicode__) na modeli. Administrátor Django použije túto metódu na zobrazenie inštancií, nie je potrebné prepísať alebo prispôsobiť nič admin.py pre to.

Vo vašom prípade takto:

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