Подтвердить что ты не робот

Отображение модели_unicode__ в django admin

Я хотел бы показать имя пользователя модели в интерфейсе Django Admin, но не очень уверен, как это сделать.

The models.py:

    class Adult(models.Model):    
        user = models.OneToOneField(User)
        fullname = models.CharField(max_length=100,
                                    blank=True)
        def __unicode__(self):
            return self.user.username

Admin.py:

    class AdultAdmin(admin.ModelAdmin):
        list_display = ('??', 'Student_Name',)
        search_fields = ['??',]

    admin.site.register(Adult, AdultAdmin)

Что нужно делать внутри? выше? Я хотел бы отобразить unicode или self.user.username? Как мне это сделать? Нужно руководствоваться...

4b9b3361

Ответ 1

В list_display документации есть четыре вещи, которые вы можете добавить там:

  • Поле
  • Некоторый метод (вызываемый), который принимает одну переменную, которая является экземпляром, для которого отображается строка.
  • Строка, которая является именем метода или атрибута, определенного в классе модели.
  • Строка, которая является именем метода, определенного в ModelAdmin.

Для вашего случая нам нужно # 3 для list_display.

Для search_fields его проще, поскольку вы можете использовать следующую нотацию (__) для поиска.

В итоге мы получим следующее:

class AdultAdmin(admin.ModelAdmin):
    list_display = ('__unicode__', 'Student_Name',)
    search_fields = ['user__username']