Django第二课——ORM
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django第二课——ORM相关的知识,希望对你有一定的参考价值。
内容概要
1.admin的配置(选修)
admin的配置(选修)
admin是django强大功能之一,它能共从数据库中读取数据,呈现在页面中,进行管理。默认情况下,它的功能已经非常强大,如果你不需要复杂的功能,它已经够用,但是有时候,一些特殊的功能还需要定制,比如搜索功能,下面这一系列文章就逐步深入介绍如何定制适合自己的admin应用。
步骤:
1.在models中建几张表(类)
生成同步数据库的脚本:python manage.py makemigrations
同步数据库: python manage.py migrate
注意:在开发过程中,数据库同步误操作之后,难免会遇到后面不能同步成功的情况,解决这个问题的一个简单粗暴方法是把migrations目录下
的脚本(除__init__.py之外)全部删掉,再把数据库删掉之后创建一个新的数据库,数据库同步操作再重新做一遍。
2.创建超级管理员:python manage.py createsuperuser,设置好用户名和密码后便可登录http://127.0.0.1:8080/admin/啦!
3.在app01的admin.py中进行配置
一 认识ModelAdmin
管理界面的定制类,如需扩展特定的model界面需从该类继承。
二 注册medel类到admin的两种方式:
<1> 使用register的方法
1
|
admin.site.register(Book,MyAdmin) |
<2> 使用register的装饰器
1
|
@admin .register(Book) |
三 掌握一些常用的设置技巧
- list_display: 指定要显示的字段
- search_fields: 指定搜索的字段
- list_filter: 指定列表过滤器
- ordering: 指定排序字段
实例:
from django.contrib import admin from app01.models import * #导入 # Register your models here. admin.site.register(Author)#该语句用来注册 admin.site.register(Publisher)#该语句用来注册 class MyAdmin(admin.ModelAdmin): list_display = ("title","price","publisher")#定制显示哪些字段 search_fields = ("title", "publisher")#搜索插件,可根据title和publisher来搜索 list_filter = ("publisher",)#过滤器 ordering = ("price",)#排序 # fieldsets = [ # (None, {‘fields‘: [‘title‘]}), # (‘price information‘, {‘fields‘: [‘price‘, "publisher"], ‘classes‘: [‘collapse‘]}), # ] admin.site.register(Book,MyAdmin)#该语句用来注册,且将MyAdmin与Book绑定
以上是关于Django第二课——ORM的主要内容,如果未能解决你的问题,请参考以下文章