Админка

# admin.py

from django.contrib import admin

from some_app.models import SomeModel, SomeModel2


class SomeModelAdmin(admin.ModelAdmin):
    """"""


# простая регистрация модели
admin.site.register(SomeModel2)

# регистрация модели в админке, с настройкой админки
admin.site.register(SomeModel, SomeModelAdmin)
from django.contrib import admin
from django.contrib.auth.models import User

from .models import Profile

class UserAdmin(admin.UserAdmin):
    inlines = [UserProfileInline]
    list_display = ('name', 'created')
    searching_fields = ['name']
    ordering = ['name']

admin.site.unregister(User)
admin.site.register(User, UserAdmin)

admin.site.site_header = "Admin panel Header"
# urls.py

from django.conf.urls import patterns, include, url

from django.contrib import admin

urlpatterns += patterns(
    url(r'^admin/', include(admin.site.urls))
)

AdminSite

Объет, который конфигурирует админку сайта

class AdminSite
site_header

Заголовок админки

# admin.py

from django.contrib import admin

admin.AdminSite.site_header = 'Заголовок админки'

ModelAdmin

class django.contrib.admin.ModelAdmin

Объект настраивающий внешний вид админки для модели

def export_to_csv(modeladmin, request, queryset):
    # ...
    fields = [
        field for field in opts.get_fields()
        if not field.many_to_many and not field.one_to_many]
    # ...
    return response
export_to_csv.short_description = 'Export to csv'

def order_pdf(obj):
    return '<a href={}>PDF</a>'.format(
        reverse('', args=[]))
order_pdf.allow_tags = True
order_pdf.short_description = 'PDF bill'

class PostAdmin(admin.ModelAdmin):

    list_display = ('id', 'title', order_pdf)
    list_filter = ('status', 'created', 'publish', 'author')
    search_fields = ('title', 'body')
    prepopulated_fields = {'slug': ('title',)}
    raw_id_fields = ('author',)
    date_hierarchy = 'publish'
    ordering = ['status', 'publish']
    actions = [export_to_csv]
actions_on_bottom

Булево, список действий снизу

actions_on_top

Булево, список действий сверху

date_hierarchy

Поле, по которому также можно фильтровать объекты в разрезе дат

exclude

Список полей модели, которые необходимо скрыть

fields

Список полей модели, которые можно редактировать

fields = ("content", )
fields = (
    # эти два поля будут расположены по горизонтали
    ("name", "content"),
)
fieldsets

Группирует поля модели

fieldsets = (
    (
        None,
        {
            "fields": (("name", "category"),),
            "classes": (("collapse", ), ),
        },
    ),
)
list_display

Список полей, которые отображаются на странице списка объектов

Список полей, по которым можно перейти на страницы редактирования

list_editable

Список полей, которые можно редактировать прямо в списке

list_filter

Список полей, по которым можно отфильтровать объекты на странице списка объектов

list_max_show_all

Макисмальное количесвто элементов, после которого появится кнопка отобразить все

list_per_page

Пагинация

ordering

Список полей, по которым отсртировываются список объектов на стрице списка объектов

populated_fields
preserve_filters

Булево, запоминать фильтрацию списка при редактировании элемента

radio_fields
radio_fields = {
    "category": admin.VERTICAL,
}
raw_id_fields
readonly_fields

Список полей, только для чтения

save_as

Булево, включить кнопку сохранить как новый объект

save_on_top

Булево, кнопки сохранить и удалить в верху страницы

search_fields

Список полей, по которым можно произвести поиск объектов на странице ссписка объектов

search_fields = [
    some_model_field,
]

StackedInLine

Вложенный набор форм, в которых элементы управления распологаются один за другим по вертикали

class django.contrib.admin.StackedInLine
class UserProfileInline(admin.StackedInLine):
    model = Profile
can_delete

Булево, возможность удалять записи

exclude
extra

Максимальное количесвто выводимых пустых форм для создания новых записей

fields
fieldsets
model

Вторичная модель

max_num

Максимальное количесвто форм в наборе

ordering
radio_fields
readonly_fields
verbose_name

Надпись для формы

verbose_name_plural

Надпись для всего набора форм

TabularInline

Вложенный набор форм, организованный в виде таблицы.

Используется для добавления возможности добавлять связанные объекты одной модели в другую.

class django.contrib.admin.TabularInline
class OrderItemInline(admin.TabularInline):

    model = OrderItem
    raw_id_fields = ['product']

class OrderAdmin(admin.ModelAdmin):
    list_display = [
        'id', 'first_name', 'last_name', 'email', 'address',
        'postal_code', 'city', 'paid', 'created', 'updated',
    ]
    list_filter = ['paid', 'created', 'updated']
    inlines = [OrderItemInline]
can_delete

Булево, возможность удалять записи

exclude
extra

Максимальное количесвто выводимых пустых форм для создания новых записей

fields
fieldsets
model

Вторичная модель

max_num

Максимальное количесвто форм в наборе

ordering
radio_fields
readonly_fields
verbose_name