# 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"
Объет, который конфигурирует админку сайта
django.contrib.admin.
AdminSite
site_header
Заголовок админки
# admin.py
from django.contrib import admin
admin.AdminSite.site_header = 'Заголовок админки'
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_display_links
Список полей, по которым можно перейти на страницы редактирования
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,
]
Вложенный набор форм, в которых элементы управления распологаются один за другим по вертикали
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
Надпись для всего набора форм
Вложенный набор форм, организованный в виде таблицы.
Используется для добавления возможности добавлять связанные объекты одной модели в другую.
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