对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中set常用操作汇总
Jun 30 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 Python
基于Python log 的正确打开方式
Apr 28 Python
python学生信息管理系统(初级版)
Oct 17 Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 Python
Python 图像对比度增强的几种方法(小结)
Sep 25 Python
Python进阶之迭代器与迭代器切片教程
Jan 29 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
使用BeautifulSoup4解析XML的方法小结
Dec 07 Python
Pytorch 图像变换函数集合小结
Feb 01 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
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
2017/03/15 PHP
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
js控制div及网页相关属性的代码
2009/12/19 Javascript
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
2013/12/14 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
nodejs实现HTTPS发起POST请求
2015/04/23 NodeJs
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
原生js验证简洁注册登录页面
2016/12/17 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
详解jQuery-each()方法
2019/03/13 jQuery
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
Python中几种操作字符串的方法的介绍
2015/04/09 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
python实现图片识别汽车功能
2018/11/30 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
班级聚会策划书
2014/01/16 职场文书
运动会致辞稿50字
2014/02/04 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
施工安全汇报材料
2014/08/17 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
施工安全协议书范本
2014/09/26 职场文书
关于感恩的作文
2019/08/26 职场文书