新建项目,并开启

python manage.py runserver 

访问admin页面

http://127.0.0.1:8080/admin

补充:若是发现admin页面样式丢失:可能是因为在settings文件中的数据格式写错了,比如:

STATICFILES_DIRS 是元组类型,若是在os.path.join(BASE_DIR,'static')后面忘记加上逗号分隔符,则可能会丢失样式,无法找到
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)

此时并没有账号和密码:需要先配置数据库,在生成用户

配置数据库
python manage.py makemigrations
python manage.py migrate 创建用户
python manage.py createsuperuser
需要填写用户名,邮箱,密码

管理Django数据库的APP--->phpmyadmin,web版管理数据库

创建数据表:

# -*- coding: utf- -*-
from __future__ import unicode_literals from django.db import models # Create your models here. class Publisher(models.Model):
name = models.CharField(max_length=, verbose_name="名称")
address = models.CharField("地址", max_length=)
city = models.CharField('城市', max_length=)
state_province = models.CharField(max_length=)
country = models.CharField(max_length=)
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=) def __str__(self):
return self.name class AuthorDetail(models.Model):
sex = models.BooleanField(max_length=, choices=((, '男'), (, '女'),))
email = models.EmailField()
address = models.CharField(max_length=)
birthday = models.DateField()
author = models.OneToOneField(Author) class Book(models.Model):
title = models.CharField(max_length=)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()
price = models.DecimalField(max_digits=, decimal_places=, default=) def __str__(self):
return self.title

models.py

python manage.py makemigrations
python manage.py migrate

配置数据库

在admin.py中配置数据库进行管理

from __future__ import unicode_literals

from django.contrib import admin
from app01.models import * # Register your models here. admin.site.register(Book)
admin.site.register(Publisher) #会显示设置的verbose_name  在Admin中字段的显示名称
admin.site.register(Author)
python manage.py runserver 

启动项目

再次访问

在web页面进行添加:

若是有中文则会出错,解决方法请看:python---补充django中文报错

若是想将页面设置为中文显示,可以设置settings文件:

#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'

由于在建立orm对象时,__str__中只返回了title,所以页面显示只有书籍名称,其他信息并不全

class Book(models.Model):
title = models.CharField(max_length=)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()
price = models.DecimalField(max_digits=, decimal_places=, default=) def __str__(self):    #__str__需要返回字符串
    return self.title    

当没有__str__时,只会显示出

要想显示更多信息,需要我们在admin.py模块中自定义类,来设置显示的字段

class MyAdmin(admin.ModelAdmin):
list_display = ("title","price","publisher") #设置显示的字段,与原来__str__无关了 admin.site.register(Book,MyAdmin) #使MyAdmin与Book产生联系
admin.site.register(Publisher)
admin.site.register(Author)

可以修改models中的字段,设置别名在admin中显示

class Book(models.Model):
title = models.CharField(max_length=,verbose_name="书名")

搜索框:

class MyAdmin(admin.ModelAdmin):
list_display = ("title","price","publisher") #设置显示的字段,与原来__str__无关了
search_fields = ("title","price",) #会生成搜索框,元组中是允许搜索的字段

过滤器:

class MyAdmin(admin.ModelAdmin):
list_display = ("title","price","publisher") #设置显示的字段,与原来__str__无关了
search_fields = ("title","price",) #会生成搜索框,元组中是允许搜索的字段
list_filter = ("price","publisher")    #生成过滤器,以price过滤

排序:

class MyAdmin(admin.ModelAdmin):
list_display = ("title","price","publisher") #设置显示的字段,与原来__str__无关了
search_fields = ("title","price",) #会生成搜索框,元组中是允许搜索的字段
list_filter = ("price","publisher") #过滤器
ordering = ("-price",) #排序,默认id排序,升序,降序,则使用在字段前使用 '-'
readonly_fields = []  #设置不允许修改

显示和隐藏:在添加和修改时使用:

    fieldsets = [
(None, {'fields': ['title']}), #None代表其他字段隐藏,fields中字段显示
]

fieldsets = [
(None, {'fields': ['title']}),
('price information', {'fields': ['price', "publisher"], }), #组名为price information
]

    fieldsets = [
(None, {'fields': ['title']}),
('price information', {'fields': ['price', "publisher"], 'classes': ['collapse']}),  #classes样式折叠
]

python---django中orm的使用(3)admin配置与使用的更多相关文章

  1. Django中ORM介绍和字段及其参数

    ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...

  2. Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)

    Django中ORM介绍和字段及字段参数   Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...

  3. 关于Django中ORM数据库迁移的配置

    Django中ORM数据库迁移配置 1,若想将模型转为mysql数据库中的表,需要在settings中配置: DATABASES = { 'default': { 'ENGINE': 'django. ...

  4. 6月20日 Django中ORM介绍和字段、字段参数、相关操作

    一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...

  5. Django 中ORM 的使用

    一:Django 中 orm 的使用 1:手动新建一个数据库 2 :告诉Django连接哪个数据库 settings.py里配置数据库连接信息: #数据库相关的配置项 DATABASES ={ 'de ...

  6. Django中ORM的使用

    Django中ORM的使用 ORM orm(object-relation-mapping)对象关系映射,即用对象来表示关系数据库中的表: 类 --> 表, 对象-->一行数据 对象的属性 ...

  7. Django中ORM对数据库的增删改查

    Django中ORM对数据库数据的增删改查 模板语言 {% for line in press %} {% line.name %} {% endfor %} {% if 条件 %}{% else % ...

  8. Django中ORM实际应用

    1. Django中ORM的使用 1. 手动新建一个数据库 2. 告诉Django连接哪个数据库 settings.py里面配置数据库连接信息: # 数据库相关的配置项 DATABASES = { ' ...

  9. Python Django中QQ邮箱授权码问题

    Python Django中QQ邮箱授权码问题 系统及软件版本如下: Ubuntu Kylin 16.04 Python 3.5.1 Django 1.9.7 PyCharm Community Ed ...

  10. Django中ORM的聚合索引

    Django中ORM的聚合索引   在Django中,聚合函数是通过aggregate方法实现的,aggregate方法返回的结果是一个字典 在使用时需要先导入模块from django.db.mod ...

随机推荐

  1. 数据库历险记(二) | Redis 和 Mecached 到底哪个好?

    文章首发于微信公众号「陈树义」,专注于 Java 技术分享的社区.点击链接扫描二维码,与500位小伙伴一起共同进步.微信公众号二维码 http://p3npq6ecr.bkt.clouddn.com/ ...

  2. SpringBoot日记——错误页处理的配置篇

    在我们访问页面的时候经常会遇到各种问题,比如404,400,500,502等等,可返回的错误页对用户来讲,并不太亲民,所以要定制一下自己的错误页. 我们先访问一个错误页面,看下效果:(虽然给我们提供了 ...

  3. Python数据信号处理库RadioDSP: 引入ThinkDSP实现思想

    RadioDSP是针对无线通信领域的数字信号处理库,它采用了ThinkDSP的思想,对于无线通信中的IQ信号可以绘制频谱图和时域图.目前项目还在起始阶段,详细的代码可以参考链接: https://gi ...

  4. strongSwan配置、运行及测试

    版本信息:strongSwan v5.7.2 1.      编译 tar xvf strongswan-5.7.2.tar.gz ./configure --prefix=/usr/ --sysco ...

  5. python 游戏(船只寻宝)

    1. 游戏思路和流程图 实现功能:船只在可以在大海上移动打捞宝藏,船只可以扫描1格范围内的宝藏(后续难度,可以调整扫描范围,可以调整前进的格数) 游戏流程图 2. 使用模块和游戏提示 import r ...

  6. ajax请求超时判断(转载)

    ajax请求时有个参数可以借鉴一下 var ajaxTimeOut = $.ajax({ url:'', //请求的URL timeout : 1000, //超时时间设置,单位毫秒 type : ' ...

  7. Linux内核分析——第三周学习笔记

    20135313吴子怡.北京电子科技学院 chapter1 知识点梳理 一.Linux内核源代码简介 (视频中对目录下的文件进行了简介,记录如下) arch目录 占有相当庞大的空间 arch/x86目 ...

  8. 项目UML设计(团队)

    团队 队名 boy next door 队员 林晗 124(组长) 微博链接 显东 114 微博链接 基智 505 微博链接 松雄 126 微博链接 团队分工 分工表 任务 林晗 显东 基智 松雄 前 ...

  9. [置顶网]POWER 9为云与智能打造强大引擎

    POWER 9为云与智能打造强大引擎 关键字: 浪潮商用机器 POWER9 至顶网服务器频道 (文/董培欣): 从全球角度看,政治经济波动持续.逆全球化趋势抬头.技术加速变革商业等因素促使企业需要数字 ...

  10. 实体框架自定义代码优先约定(EF6以后)

    仅限EF6仅向前 - 此页面中讨论的功能,API等在实体框架6中引入.如果您使用的是早期版本,则部分或全部信息不适用. 使用Code First时,您的模型是使用一组约定从您的类计算的.默认的Code ...