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’。
本文来自博客园,作者:渔歌晚唱,转载请注明原文链接:https://www.cnblogs.com/tangToms/articles/14158968.html

浙公网安备 33010602011771号