LINUX.ORG.RU

Django admin (list_display)


0

1

Всем привет!

Народ, не подскажете как корректно отображать в админке название поля, связанного с другой таблицой схемой ForeignKey?

Например,

models.py

class UserProfile (models.Model):
    ...
    user = models.ForeignKey(User)
    ...

cloass Example(models.Model):
    ...
    user_profile = models.ForeignKey(UserProfile)
    ...

admin.py

class ExampleAdmin(admin.ModelAdmin):
    list_display = ("...", "user_profile", "...")

При таком раскладе, в админке отображается не имя пользователя (как и предполагалось), а «UserProfile object». Как получить доступ к полю username?


Определить метод __unicode__(self) для модели.

anonymous ()
Ответ на: комментарий от anonymous

Не работет что-то(

models.py

cloass Example(models.Model):
    user_profile = models.ForeignKey(UserProfile)
    def __unicode__(self):
        return (u"%s" % self.user_profile)

Sektor ()
Ответ на: комментарий от Sektor

Сорри, туплю что-то я!

Не для той модели метод определил)

Спасибо, анонимус, заработало!

Sektor ()
Ответ на: комментарий от trashymichael

Нет, это просто описание самого поля.

gruy ★★★ ()

Можно и так:

class ExampleAdmin(admin.ModelAdmin):
    list_display = ("...", "user_profile__username", "...")
vint21h ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.