Настройка администратора пользователя Django - PullRequest
0 голосов
/ 11 ноября 2011

У меня есть приложение Django, где у пользователей есть дополнительные данные. Эти данные собираются в модели Profile, где OneToOneField указывает на User.

Это нормально и отлично работает для большинства целей, но у меня проблемы с настройкой администратора для User. В частности:

  • Я бы хотел показать поле Profile внутри list_display. Я не знаю, как это сделать без написания дополнительного метода для User.
  • Я хотел бы показать некоторую информацию о связанных моделях (например, некоторые ресурсы, принадлежащие пользователю) на странице подробностей User. Опять же, я не знаю, как это сделать, не написав собственный метод User.

Знаете ли вы какое-либо решение выше?

Ответы [ 2 ]

1 голос
/ 11 ноября 2011

Вам нужно только отредактировать административные классы в admin.py. Вы можете использовать admin.inline * класс, чтобы помочь вам. Пример с сайта Django, который добавит книгу на страницу администратора автора:

class BookInline(admin.TabularInline):
    model = Book

class AuthorAdmin(admin.ModelAdmin):
    inlines = [
        BookInline,
    ]

admin.site.register(Author, AuthorAdmin)

Подробнее здесь .

РЕДАКТИРОВАТЬ: Вы должны иметь возможность добавлять методы в модель UserAdmin и ссылаться на них при настройке полей list_display:

list_display = (..., 'your_method')
0 голосов
/ 11 ноября 2011

Оказывается, методы можно поместить в саму UserAdmin, а не в модель User.Таким образом, я могу получить доступ ко всей информации о пользователе.

...