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中转换角度为弧度的radians()方法
May 18 Python
wxPython之解决闪烁的问题
Jan 15 Python
利用nohup来开启python文件的方法
Jan 14 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
python中列表的切片与修改知识点总结
Jul 23 Python
Python 读取用户指令和格式化打印实现解析
Sep 02 Python
使用TensorFlow对图像进行随机旋转的实现示例
Jan 20 Python
python同义词替换的实现(jieba分词)
Jan 21 Python
Python爬取阿拉丁统计信息过程图解
May 12 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 Python
pytorch使用horovod多gpu训练的实现
Sep 09 Python
python解析json数据
Apr 29 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 Ubb代码编辑器函数代码
2012/07/05 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
JavaScript 调试器简介
2009/02/21 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
浅谈JavaScript的push(),pop(),concat()方法
2016/06/03 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
vue实现图片按比例缩放问题操作
2020/08/11 Javascript
利用python爬取散文网的文章实例教程
2017/06/18 Python
python实现对csv文件的列的内容读取
2018/07/04 Python
Python函数中的可变长参数详解
2019/09/12 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
keras多显卡训练方式
2020/06/10 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
公司年终奖分配方案
2014/06/16 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
先进典型发言材料
2014/12/30 职场文书
诚信考试承诺书范文
2015/04/29 职场文书
学前教育见习总结
2015/06/23 职场文书
活动新闻稿范文
2015/07/17 职场文书
清明扫墓感想
2015/08/11 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python
解决python3安装pandas出错的问题
2021/05/20 Python
JS代码编译器Monaco使用方法
2021/06/11 Javascript