Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个app的admin.py文件中进行控制

 

 

#创建超级用户

python manage.py createsuperuser

 

注意密码需要8位,数字和字母组合

 

存储在auth_user表中

 

一、       基本设置

 

1、应用注册

若要把app应用显示在后台管理中,需要在admin.py中注册。这个注册有两种方式,我比较喜欢用装饰器的方式。

先看看普通注册方法。打开admin.py文件,如下代码:

1

2

3

4

5

6

7

8

9

from django.contrib import admin

from blog.models import Blog

  

#Blog模型的管理器

class BlogAdmin(admin.ModelAdmin):

    list_display=('id', 'caption', 'author', 'publish_time')

     

#在admin中注册绑定

admin.site.register(Blog, BlogAdmin)

  上面方法是将管理器和注册语句分开。有时容易忘记写注册语句,或者模型很多,不容易对应。

还有一种方式是用装饰器,该方法是Django1.7的版本新增的功能:

1

2

3

4

5

6

7

from django.contrib import admin

from blog.models import Blog

  

#Blog模型的管理器

@admin.register(Blog)

class BlogAdmin(admin.ModelAdmin):

    list_display=('id', 'caption', 'author', 'publish_time')

  该方式比较方便明显,推荐用这种方式。

 

2、admin界面汉化

默认admin后台管理界面是英文的,对英语盲来说用起来不方便。可以在settings.py中设置:

  1. LANGUAGE_CODE = 'zh-CN'
  2. TIME_ZONE = 'Asia/Shanghai'

1.8版本之后的language code设置不同:

  1. LANGUAGE_CODE = 'zh-hans'
  2. TIME_ZONE = 'Asia/Shanghai'

 

 

 

admin.py

 

from django.contrib import admin

 

from supermarket.models import Product

 

 

@admin.register(Product)

class ProductAdmin(admin.ModelAdmin):

    list_display=('id', 'name', 'price')

 

    #list_per_page设置每页显示多少条记录,默认是100条

    list_per_page = 50

 

    #ordering设置默认排序字段,负号表示降序排序

    ordering = ('-created_time',)

 

    #list_editable 设置默认可编辑字段,在列表里就可以编辑

    list_editable = ['title', 'user']

 

    #设置哪些字段可以点击进入编辑界面

    list_display_links = ('id', 'title')

 

#设置查找字段

search_fields=['title']