Django 学习日记 - Admin - setp11

2017-02-15  本文已影响100人  Spareribs

django admin是django自带的一个后台app,提供了后台的管理功能。

1 ModelAdmin

管理界面的定制类,如需扩展特定的model界面需要从该类继承

2 注册model类到admin的两种方式

  1. 使用register的方法
  2. 使用register的装饰器

3 掌握一些常用的设置技巧

list_display:指定要显示的字段
search_fields:指定搜索的字段
list_filter:指定列表过滤器
ordering:指定排序字段
fields\exclude:指定编辑表单需要编辑\不需编辑的字段
fieldsets:设置分组表单

4 测试

4.1 admin.py代码

# ==============================
# models.py的代码
class Publisher(models.Model):
    name = models.CharField(max_length=30, verbose_name="出版社名称")
    address = models.CharField("地址", max_length=50)
    city = models.CharField("城市", max_length=60)
    state_province = models.CharField("省份", max_length=30)
    country = models.CharField("国家", max_length=50)
    website = models.URLField("网址", )

    class Meta:
        verbose_name = '出版社'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

# ==============================
# admin.py的代码
from django.contrib import admin
from hello.models import *

# Register your models here.
@admin.register(Publisher)
class PublsherAdmin(admin.ModelAdmin):
    list_display = ('name', 'country', 'state_province', 'city', 'country')
    search_fields = ('name', 'city')
    list_filter = ('state_province',)
    ordering = ('-id',)
    # fields = ('name','address')
    exclude = ('country',)
    fieldsets = (
        (None, {
            'fields': ('name', 'address')
        }),
        ('拓展选项', {
            'classes': ('collapse',),
            'fields': ('city', 'state_province', 'website'),
        }),
    )

# admin.site.register(Publisher, PublsherAdmin)

4.2 Publisher的admin展示

Django 1.9:官方文档 - admin后台设置

上一篇下一篇

猜你喜欢

热点阅读