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编程中三条常用的技巧
May 11 Python
基于MTCNN/TensorFlow实现人脸检测
May 24 Python
详解将Django部署到Centos7全攻略
Sep 26 Python
Python实现Singleton模式的方式详解
Aug 08 Python
浅析python内置模块collections
Nov 15 Python
python加载自定义词典实例
Dec 06 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
Python tkinter常用操作代码实例
Jan 03 Python
使用matplotlib动态刷新指定曲线实例
Apr 23 Python
Python 3.9的到来到底是意味着什么
Oct 14 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 Python
python反爬虫方法的优缺点分析
Nov 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
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
Javascript中的call()方法介绍
2015/03/15 Javascript
js实现简单div拖拽功能实例
2015/05/12 Javascript
jquery悬浮提示框完整实例
2016/01/13 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
jQuery.Callbacks()回调函数队列用法详解
2016/06/14 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
基于JS实现数字动态变化显示效果附源码
2019/07/18 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
Python 数据结构之旋转链表
2017/02/25 Python
解决python 输出是省略号的问题
2018/04/19 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
python基于SMTP协议发送邮件
2019/05/31 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
python视频按帧截取图片工具
2019/07/23 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
python 实现简单的FTP程序
2019/12/27 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
Python调用百度OCR实现图片文字识别的示例代码
2020/07/17 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
军人离婚协议书样本
2014/10/21 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
会计出纳岗位职责
2015/03/31 职场文书
春节晚会开场白
2015/05/29 职场文书
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python