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实现按行切分文本文件的方法
Apr 18 Python
python入门教程之识别验证码
Mar 04 Python
利用python3随机生成中文字符的实现方法
Nov 24 Python
浅谈Python黑帽子取代netcat
Feb 10 Python
Python实现绘制双柱状图并显示数值功能示例
Jun 23 Python
Python基础学习之类与实例基本用法与注意事项详解
Jun 17 Python
Python jieba库用法及实例解析
Nov 04 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
Django权限设置及验证方式
May 13 Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 Python
python Cartopy的基础使用详解
Nov 01 Python
Python实现DBSCAN聚类算法并样例测试
Jun 22 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错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
php检测文本的编码
2015/07/26 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
完美的php分页类
2017/10/24 PHP
php实现的mongoDB单例模式操作类
2018/01/20 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
AngularJS内置指令
2015/02/04 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
Angular开发者指南之入门介绍
2017/03/05 Javascript
javascript基于定时器实现进度条功能实例
2017/10/13 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
Python建立Map写Excel表实例解析
2018/01/17 Python
Django 用户认证组件使用详解
2019/07/23 Python
Python安装selenium包详细过程
2019/07/23 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
Python和Sublime整合过程图示
2019/12/25 Python
使用Python发现隐藏的wifi
2020/03/04 Python
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
上课打牌的检讨书
2014/02/15 职场文书
事业单位竞聘上岗实施方案
2014/03/28 职场文书
环境科学专业求职信
2014/08/04 职场文书
员工三分钟演讲稿
2014/08/19 职场文书
泰山导游词
2015/02/02 职场文书
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL