admin

# 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)
# urls.py
# подключение админки

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

urlpatterns += patterns(
    url(r'^admin/', include(admin.site.urls))
)
# urls.py
# подключение админки

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('cities.urls')),
)
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"

AdminSite

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

class django.contrib.admin.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

Список действий в админке

def some_action(modeladmin, request, queryset):
    pass

some_action.short_description = 'Some action'
some_action.allow_tags = True

class SomeAdmin(admin.ModelAdmin):
    actions = [some_action]
actions_on_bottom

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

class SomeAdmin(admin.ModelAdmin):

    actions_on_bottom = True
actions_on_top

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

class SomeAdmin(admin.ModelAdmin):

    actions_on_top = True
actions_selection_counter
date_hierarchy

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

empty_value_display
exclude

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

fields

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

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

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

class SomeAdmin(admin.ModelAdmin):
    fieldsets = (
        (
            None,
            {
                "fields": (("name", "category"),),
                "classes": (("collapse", ), ),
            },
        ),
    )
filter_horizontal
filter_vertical
form
formfield_overrides
inlines

Список встаиваемых моделей

class PostFilesInline(TabularInline):
    model = File

class PostAdmin(ModelAdmin):

    inlines = [
        PostFilesInline,
    ]
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