Django创建一个后台的基本步骤记录


Posted in Python onOctober 02, 2020

1.首先分析要做的项目的结构,整理出关系图

2.运行 python manage.py startapp XXX 创建一个app

3.根据关系图设计models层,理清关系,设计好数据结构

4.在settings的位置配置app所在的位置

5.运行python manage.py makemigrations

6.运行 python manage.py migrate

7配置后台 建议运用装饰器如下:

@admin.register(模块类名)
class 模块类名Admin(admin.ModelAdmin):
	配置的代码,比如显示什么 等等

8.运行python manage.py createsuperuser 然后根据提示输入用户名和邮箱等个人信息,其中邮箱可为空,密码在输入的时候不显示在控制台.

10.在定义models字段时经常需要遇到根据请求来源改变用户名的时候,可将方法重写如下:

def save_model(self, request, obj, form, change):
  obj.owner = request.user
  return super(模块类名Admin, self).save_model(request,obj,form,change)

此时的list_display列表 owner 字段 就会根据请求的不同来源自动赋值

11.在定义模块时没有定义的字段如登陆用户可以在后台进行修改如下:

def 字段名称(self, obj):
  return obj.xxx()

 字段名称.short_description = '文本描述'

此时可以在list_display列表里添加 字段名称 这个字段如下:

list_display = [
	'name','sex','age','字段名称'
]

12.在每个models的类都添加__str__方法非常重要如下:

def __str__(self):
	return self.字段名称

13.如果过滤器()不符合自己的需求那么可以自己定制过滤器,基本思想是找到queryset,然后进行一个过滤,主要是继承了admin.SimpleListFilter类,然后对两个属性和两个方法进行重写,如下:

class 类名Filter(admin.SimpleListFilter):
 """自定义过滤器 """
 title = '分类过滤器'
 parameter_name = 'owner_category'

 def lookups(self, request, model_admin):
  return Category.objects.filter(筛选条件).values_list('参数1,必须是主键', '参数2,显示在界面上的内容')

 def queryset(self, request, queryset):
  category_id = self.value()
  if category_id:
   return queryset.filter(category__id=category_id)
  return queryset


@admin.register(类名)
class 类名Admin(admin.ModelAdmin):
 
 list_filter = [类名Filter]

14.若显示界面的内容也就是 list_display的内容不符合预期,我们也可以进行定制.主要原理还是找到queryset在哪里生成也就是数据源的位置进行过滤即可,一般都是get_queryset方法是最后生成queryset的位置.如下:

def get_queryset(self, request):
  qs = super(PostAdmin, self).get_queryset(request)
  return qs.filter(筛选条件)

介于本人学习的进度,编辑页面的配置日后补齐

总结

到此这篇关于Django创建一个后台的基本步骤记录的文章就介绍到这了,更多相关Django创建后台步骤内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
基python实现多线程网页爬虫
Sep 06 Python
浅谈Python 中整型对象的存储问题
May 16 Python
利用python微信库itchat实现微信自动回复功能
May 18 Python
新手常见6种的python报错及解决方法
Mar 09 Python
Python基于win32ui模块创建弹出式菜单示例
May 09 Python
利用pyinstaller将py文件打包为exe的方法
May 14 Python
matplotlib subplots 调整子图间矩的实例
May 25 Python
Python Tkinter模块实现时钟功能应用示例
Jul 23 Python
学习python的前途 python挣钱
Feb 27 Python
python Pandas库基础分析之时间序列的处理详解
Jul 13 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 Python
Python中qutip用法示例详解
Oct 02 #Python
如何利用Python给自己的头像加一个小国旗(小月饼)
Oct 02 #Python
Python通过fnmatch模块实现文件名匹配
Sep 30 #Python
Python tempfile模块生成临时文件和临时目录
Sep 30 #Python
Python实现定时监测网站运行状态的示例代码
Sep 30 #Python
python如何实现word批量转HTML
Sep 30 #Python
Python识别验证码的实现示例
Sep 30 #Python
You might like
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
2017/08/11 PHP
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
用Python代码来绘制彭罗斯点阵的教程
2015/04/03 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
2019/05/29 Python
用Python解数独的方法示例
2019/10/24 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
python 爬虫请求模块requests详解
2020/12/04 Python
佳能法国商店:Canon法国
2019/02/14 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
实习期自我鉴定
2013/10/11 职场文书
行政人员工作职责
2013/12/05 职场文书
集中整治工作方案
2014/05/01 职场文书
大学学风建设方案
2014/05/04 职场文书
五好关工委申报材料
2014/05/31 职场文书
先进集体申报材料
2014/12/25 职场文书
高三语文复习计划
2015/01/19 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
建议书的格式及范文
2015/09/14 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS