点击上方”python宝典”,关注获取python全套视频,
技术文章第一时间送达!
admin
django amdin是django提供的一个后台管理页面,给管理页面提供完善的html和css,使得你在通过Model创建完数据库表之后,就可以对数据进行增删改查,它是django强大功能之一,它能共从数据库中读取数据,呈现在页面中,进行管理。默认情况下,它的功能已经非常强大,如果你不需要复杂的功能,它已经够用,但是有时候,一些特殊的功能还需要定制,比如搜索功能,下面这一系列文章就逐步深入介绍如何定制适合自己的admin应用。
1 首先我们用pycharm创建一个Django项目
2 创建数据库表(app01下的models.py)
from django.db import models
# Create your models here.
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
class Author(models.Model):
name = models.CharField(max_length=30)
def __str__(self):
return self.name
class AuthorDetail(models.Model):
sex = models.BooleanField(max_length=1, choices=((0, '男'), (1, '女'),))
email = models.EmailField()
address = models.CharField(max_length=50)
birthday = models.DateField()
author = models.OneToOneField(Author, on_delete=None)
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher, on_delete=None)
publication_date = models.DateField()
price = models.DecimalField(max_digits=5, decimal_places=2, default=10)
def __str__(self):
return self.title
3 注册和配置django admin 后台管理页面
注册medel类到admin的两种方式:
1 使用register的方法
admin.site.register(Book,MyAdmin)
2 使用register的装饰器
@admin.register(Book)
认识ModelAdmin
管理界面的定制类,如需扩展特定的model界面需从该类继承。
app01下的admin.py
from django.contrib import admin
# Register your models here.
from app01.models import *
# Register your models here.
# @admin.register(Book)#-----单给某个表加一个定制
class MyAdmin(admin.ModelAdmin):
list_display = ("title","price","publisher")
search_fields = ("title","publisher__name")
list_filter = ("publisher__name",)
ordering = ("price",)
fieldsets =[
(None, {'fields': ['title']}),
('price information', {'fields': ['price',"publisher","publication_date"], 'classes': ['collapse']}),
]
admin.site.register(Book,MyAdmin)
admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(AuthorDetail)
fieldsets: 分组显示
search_fields: 指定搜索的字段
ordering: 指定排序字段
4 打开terminal,同步数据库,并创建管理员用户
同步数据库
python manage.py makemigrations
python manage.py migrate
并创建管理员用户
python manage.py createsuperuser
5 管理界面默认是英文,可以在setting.py 文件中修改以下选项,变成中文
LANGUAGE_CODE = 'zh-hans'
6 启动项目,访问http://127.0.0.1:8000/admin,界面如下
7 输入刚才创建的管理员用户名和密码
8 之后就可以对数据进行增删改查了,怎么样?是不是很强大!
识别图中二维码,欢迎关注python宝典