热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:pythondjango中orm的使用admin配置与使用

篇首语:本文由编程笔记#小编为大家整理,主要介绍了python---django中orm的使用admin配置与使用相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了python---django中orm的使用admin配置与使用相关的知识,希望对你有一定的参考价值。



新建项目,并开启


python manage.py runserver 8080

访问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-8 -*-
from __future__ import unicode_literals
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)
class Book(models.Model):
title
= models.CharField(max_length=100)
authors
= models.ManyToManyField(Author)
publisher
= models.ForeignKey(Publisher)
publication_date
= models.DateField()
price
= models.DecimalField(max_digits=5, decimal_places=2, default=10)
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 8080


启动项目

再次访问

在web页面进行添加:

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

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


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

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

 


class Book(models.Model):
title
= models.CharField(max_length=100)
authors
= models.ManyToManyField(Author)
publisher
= models.ForeignKey(Publisher)
publication_date
= models.DateField()
price
= models.DecimalField(max_digits=5, decimal_places=2, default=10)
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=100,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样式折叠
]

 



推荐阅读
  • 本文详细探讨了 Django 的 ORM(对象关系映射)机制,重点介绍了其如何通过 Python 元类技术实现数据库表与 Python 类的映射。此外,文章还分析了 Django 中各种字段类型的继承结构及其与数据库数据类型的对应关系。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • Django xAdmin 使用指南(第一部分)
    本文介绍如何在Django项目中集成和使用xAdmin,这是一个增强版的管理界面,提供了比Django默认admin更多的功能。文中详细描述了集成步骤及配置方法。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文将介绍由密歇根大学Charles Severance教授主讲的顶级Python入门系列课程,该课程广受好评,被誉为Python学习的最佳选择。通过生动有趣的教学方式,帮助初学者轻松掌握编程基础。 ... [详细]
  • Django Token 认证详解与 HTTP 401、403 状态码的区别
    本文详细介绍了如何在 Django 中配置和使用 Token 认证,并解释了 HTTP 401 和 HTTP 403 状态码的区别。通过具体的代码示例,帮助开发者理解认证机制及权限控制。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • Python 异步编程:ASGI 服务器与框架详解
    自 Python 3.5 引入 async/await 语法以来,异步编程迅速崛起,吸引了大量开发者的关注。本文将深入探讨 ASGI(异步服务器网关接口)及其在现代 Python Web 开发中的应用,介绍主流的 ASGI 服务器和框架。 ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • 日志记录对于软件开发至关重要,特别是在调试和维护阶段。通过日志,开发者能够追踪错误源头并了解系统的运行状态。本文将探讨如何在Django框架中有效配置和使用日志记录功能。 ... [详细]
author-avatar
仲奕凡恋歌
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有