python---django中orm的使用(3)admin配置与使用
新建项目,并开启
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配置与使用的更多相关文章
- Django中ORM介绍和字段及其参数
ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...
- Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)
Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...
- 关于Django中ORM数据库迁移的配置
Django中ORM数据库迁移配置 1,若想将模型转为mysql数据库中的表,需要在settings中配置: DATABASES = { 'default': { 'ENGINE': 'django. ...
- 6月20日 Django中ORM介绍和字段、字段参数、相关操作
一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...
- Django 中ORM 的使用
一:Django 中 orm 的使用 1:手动新建一个数据库 2 :告诉Django连接哪个数据库 settings.py里配置数据库连接信息: #数据库相关的配置项 DATABASES ={ 'de ...
- Django中ORM的使用
Django中ORM的使用 ORM orm(object-relation-mapping)对象关系映射,即用对象来表示关系数据库中的表: 类 --> 表, 对象-->一行数据 对象的属性 ...
- Django中ORM对数据库的增删改查
Django中ORM对数据库数据的增删改查 模板语言 {% for line in press %} {% line.name %} {% endfor %} {% if 条件 %}{% else % ...
- Django中ORM实际应用
1. Django中ORM的使用 1. 手动新建一个数据库 2. 告诉Django连接哪个数据库 settings.py里面配置数据库连接信息: # 数据库相关的配置项 DATABASES = { ' ...
- Python Django中QQ邮箱授权码问题
Python Django中QQ邮箱授权码问题 系统及软件版本如下: Ubuntu Kylin 16.04 Python 3.5.1 Django 1.9.7 PyCharm Community Ed ...
- Django中ORM的聚合索引
Django中ORM的聚合索引 在Django中,聚合函数是通过aggregate方法实现的,aggregate方法返回的结果是一个字典 在使用时需要先导入模块from django.db.mod ...
随机推荐
- 大白话说Java泛型:入门、使用、原理
文章首发于[博客园-陈树义],点击跳转到原文<大白话说Java泛型:入门.使用.原理> 远在 JDK 1.4 版本的时候,那时候是没有泛型的概念的.当时 Java 程序员们写集合类的代码都 ...
- JavaScript快速入门-ECMAScript运算符
1.逻辑运算符 逻辑与:&&(and) 逻辑或:||(or) 逻辑非:!(not) 逻辑 AND 运算符(&&) 逻辑 AND 运算的运算数可以是任何类型的,不止是 B ...
- Salesforce随笔: 解决被指定给Chatter相关用户的RecordType无法被删除的问题
被指定给以下三组用户的RecordType无法在对应的Profile里取消占用: Chatter External User Chatter Free User Chatter Moderator U ...
- Katalon Studio学习笔记(二)——请求响应中文乱码解决方法
Katalon Studio接口测试发现返回的中文消息是乱码,这是因为KS的编码格式是UTF-8,因此导致中文字体出现乱码.如下图所示: 在我们的系统中添加一个名字为JAVA_TOOL_OPTIONS ...
- android listview addheaderview viewpager
just set viewPager's onTouchListener,like this: viewPager.setOnTouchListener(new OnTouchListener() { ...
- M1事后分析报告
在得到M1团队成绩之后,每个团队都需要编写一个事后分析报告,对于团队在M1阶段的工作做一个总结. 请在2015年11月24日上课之前根据下述博客中的模板总结前一阶段的工作,发表在团队博客上,并在课上的 ...
- 11.7 Daily Scrum(周末暂停两天Daily Scrum)
由于APEC放假,有些成员离校了,他们那部分的任务会暂时拖后一些,之后会加班加点赶工. 另外,每个人的任务还是相对独立,离校成员的任务进度不会对其他成员的进度造成很大影响. Today's tas ...
- Linux内核分析——第一周学习笔记20135308
第一周 计算机是如何工作的 第一节 存储程序计算机工作模型 1.冯·诺依曼结构模型:冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构.程序指令存储地址和数据存储 ...
- hibernate 创建工厂类
package cn.hibernate; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; / ...
- ns3的输入输出奥秘(一) LOGGING系统
1.LOGGING系统 (1)在我们之前对C++的理解,输出好像就是cout,然而 以myfirst.cc为例子 在我们前面的编写的代码中并没有出现cout,那他是如何输出. 可以回忆一下 LogCo ...