python学习:Django的Admin模块(4)

Django的Admin

        Django提供的一个管理员模块,可以通过页面操作Django应用使用的数据库表。

创建管理员账号:

使用python manage.py createsuperuser。

输入用户名,密码,邮箱等信息。

修改admin.py文件

from django.contrib import admin

from ormApp import models

# Register your models here.

 

admin.site.register(models.Author)

admin.site.register(models.Book)

admin.site.register(models.Publish)

 

就能够在ORMAPP看到我们可以管理的表。

 

 

点击Authors,我们只能看到Author表有多少记录,不能看到记录具体内容,需要我们定制显示内容。

 

 

修改admin.py

示例:

#定制显示,定义一个类继承admin.ModelAdmin

class BookAdmin(admin.ModelAdmin):

    #设置显示栏位

    list_display = ("id","name","price","pub_date")

class AuthorAdmin(admin.ModelAdmin):

    #设置显示栏位

    list_display = ("id","name","age")

 

class PublishAdmin(admin.ModelAdmin):

    list_display=("id","name","addr")

 

#注册对应model

admin.site.register(models.Author,AuthorAdmin)

admin.site.register(models.Book,BookAdmin)

admin.site.register(models.Publish,PublishAdmin)

这里修改了Book显示,同理可以修改Author和Publish

#设置栏位是否可编辑

list_editable = ("name","price")

#设置选择器

filter_horizontal = ("author",)

#设置分页每页显示几条

list_per_page = 2

#添加一个查询栏

search_fields = ("name",)

#设置一个筛选的filter

list_filter = ("pub_date","price","name",)

 

 

Fields的设置

定义model时,可以设置在admin显示栏位名。

修改models.py,设置verbose_name=”属性名”,设置admin中显示。

name = models.CharField(max_length=20,verbose_name="名称");

 

设置models.py中Fields的属性:

设置字段长度:max_length=20;

设置admin界面显示栏位名:vervose_anme=””

设置null:null=True or False;  是否为空;

设置blank:blank=True or False ,admin是否可以设置空值;

设置default:设置默认值;

设置primary_key :设置主键primary_key = True;

设置 unique: 设置数据唯一;

设置editable:editable = True or False ;设置admin下是否可编辑

 

 

多对多关系时,设置filter_horizontal,显示object

filter_horizontal = ('author',)

 

需要重写models.py中的model类的__str__方法:

#admin显示的是个object信息,重写str方法,显示name

def __str__(self):

    return self.name;

 

 

可以看到显示的就是Author对象的名字。

 

设置Django的Admin显示为中文

修改setting.py,

LANGUAGE_CODE = 'en-us'

将language_code修改为‘zh-hans’。

 

posted @ 2020-12-19 14:22  渔歌晚唱  阅读(288)  评论(0)    收藏  举报