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使用sorted函数对列表进行排序的方法
Apr 04 Python
自己使用总结Python程序代码片段
Jun 02 Python
两个使用Python脚本操作文件的小示例分享
Aug 27 Python
Python中第三方库Requests库的高级用法详解
Mar 12 Python
Django自定义分页效果
Jun 27 Python
python实现决策树分类
Aug 30 Python
在Python中调用Ping命令,批量IP的方法
Jan 26 Python
pandas把所有大于0的数设置为1的方法
Jan 26 Python
pycharm 批量修改变量名称的方法
Aug 01 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
Apr 17 Python
python3.7.3版本和django2.2.3版本是否可以兼容
Sep 01 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数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
php set_time_limit()函数的使用详解
2013/06/05 PHP
yii中widget的用法
2014/12/03 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
js 表单验证方法(实用)
2009/04/28 Javascript
使用JavaScript库还是自己写代码?
2010/01/28 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
js判断子窗体是否关闭的方法
2015/08/11 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
vue 解决IOS10低版本白屏的问题
2020/11/17 Javascript
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
python基础知识小结之集合
2015/11/25 Python
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
浅谈python字符串方法的简单使用
2016/07/18 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
2019/04/11 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
python实现3D地图可视化
2020/03/25 Python
日本小田急百货官网:Odakyu
2018/07/19 全球购物
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
副总经理岗位职责
2014/03/16 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
布达拉宫导游词
2015/02/02 职场文书
大学毕业生自我鉴定范文
2019/06/21 职场文书