Django~Admin

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> Django~Admin

点击上方”python宝典”,关注获取python全套视频,

技术文章第一时间送达!

admin

django amdin是django提供的一个后台管理页面,给管理页面提供完善的html和css,使得你在通过Model创建完数据库表之后,就可以对数据进行增删改查,它是django强大功能之一,它能共从数据库中读取数据,呈现在页面中,进行管理。默认情况下,它的功能已经非常强大,如果你不需要复杂的功能,它已经够用,但是有时候,一些特殊的功能还需要定制,比如搜索功能,下面这一系列文章就逐步深入介绍如何定制适合自己的admin应用。

1 首先我们用pycharm创建一个Django项目

Django~Admin

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)
  •  list_display:     指定要显示的字段
  •  search_fields:  指定搜索的字段
  •  list_filter:        指定列表过滤器
  •  ordering:       指定排序字段
  •  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,界面如下

    Django~Admin

    7 输入刚才创建的管理员用户名和密码

    Django~Admin

    8 之后就可以对数据进行增删改查了,怎么样?是不是很强大!

    Django~Admin Django~Admin

    识别图中二维码,欢迎关注python宝典

    本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

    本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

    原文链接:blog.ouyangsihai.cn >> Django~Admin


      转载请注明: 好好学java Django~Admin

     上一篇
    Django~表的操作 Django~表的操作
    点击上方”python宝典”,关注获取python全套视频, 技术文章第一时间送达! **增(create  ,  save) ** from app01.models import * #create方式一: Author.
    2021-04-05
    下一篇 
    Django进阶 Django进阶
    点击上方”python宝典”,关注获取python全套视频, 技术文章第一时间送达! Formdjango中的Form一般有两种功能: 输入html 验证用户输入 import re from django import forms fr
    2021-04-05