对django后台admin下拉框进行过滤的实例


Posted in Python onJuly 26, 2019

使用django admin 自带后台

admin后台下拉显示的时候需要添加过滤条件,

因为表是自己关联自己,同时还需要过滤掉自己, 需要获取当前对象的id,需要获取obj_id

from django.contrib import admin
from .models import Comment

# actions添加模型动作
def disable_commentstatus(modeladmin, request, queryset):
  queryset.update(is_enable=False)

def enable_commentstatus(modeladmin, request, queryset):
  queryset.update(is_enable=True)

disable_commentstatus.short_description = '隐藏评论'
enable_commentstatus.short_description = '显示评论'

class CommentAdmin(admin.ModelAdmin):
  list_display = ('id', 'commentator', 'article', 'parent_comment', 'is_enable', 'created_time')
  list_display_links = ('id', 'commentator')
  list_filter = ('commentator', 'article', 'is_enable')
  actions = [disable_commentstatus, enable_commentstatus]

  def formfield_for_foreignkey(self, db_field, request, *args, **kwargs):
    if db_field.name == 'parent_comment':
      try:
        obj_id = request.resolver_match.args[0] #这里获取当前对象id,非常重要
        kwargs['queryset'] = Comment.objects.filter(parent_comment=None).exclude(id=int(obj_id)) # 添加过滤条件
      except:
        kwargs['queryset'] = Comment.objects.filter(parent_comment=None)
    return super(CommentAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)

admin.site.register(Comment, CommentAdmin)

以上这篇对django后台admin下拉框进行过滤的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中的五种异常处理机制介绍
Sep 02 Python
python uuid模块使用实例
Apr 08 Python
为Python的web框架编写MVC配置来使其运行的教程
Apr 30 Python
python的random模块及加权随机算法的python实现方法
Jan 04 Python
python中列表和元组的区别
Dec 18 Python
Python实现PS滤镜的旋转模糊功能示例
Jan 20 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
Mar 13 Python
pandas数据框,统计某列数据对应的个数方法
Apr 11 Python
python使用matplotlib绘制热图
Nov 07 Python
Python下简易的单例模式详解
Apr 08 Python
python使用time、datetime返回工作日列表实例代码
May 09 Python
Numpy中对向量、矩阵的使用详解
Oct 29 Python
python函数的万能参数传参详解
Jul 26 #Python
Python企业编码生成系统之主程序模块设计详解
Jul 26 #Python
Django REST Framework序列化外键获取外键的值方法
Jul 26 #Python
django admin.py 外键,反向查询的实例
Jul 26 #Python
Python企业编码生成系统之系统主要函数设计详解
Jul 26 #Python
python的re模块使用方法详解
Jul 26 #Python
Python企业编码生成系统总体系统设计概述
Jul 26 #Python
You might like
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
Javascript基础教程之数组 array
2015/01/18 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
深入解析Python中的集合类型操作符
2015/08/19 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
2018/07/27 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
教师求职推荐信范文
2013/11/20 职场文书
外贸业务员的岗位职责
2013/11/23 职场文书
党委书记岗位职责
2013/11/24 职场文书
机械制造毕业生求职信
2014/03/03 职场文书
投资意向协议书
2015/01/29 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书