对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定时器(Timer)用法简单实例
Jun 04 Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 Python
python使用Pycharm创建一个Django项目
Mar 05 Python
numpy.delete删除一列或多列的方法
Apr 03 Python
Windows下python3.7安装教程
Jul 31 Python
python操作kafka实践的示例代码
Jun 19 Python
python读写配置文件操作示例
Jul 03 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
python FTP批量下载/删除/上传实例
Dec 22 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
利用Pytorch实现简单的线性回归算法
Jan 15 Python
Python常用编译器原理及特点解析
Mar 23 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
解析PHP中ob_start()函数的用法
2013/06/24 PHP
php网站被挂木马后的修复方法总结
2014/11/06 PHP
PHP快速排序算法实现的原理及代码详解
2019/04/03 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
chrome原生方法之数组
2011/11/30 Javascript
jquery获取table中的某行全部td的内容方法
2013/03/08 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
Javascript实现时间倒计时效果
2017/07/15 Javascript
js module大战
2019/04/19 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
详解python中的json和字典dict
2018/06/22 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
python实现飞机大战游戏
2020/10/26 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
python基于K-means聚类算法的图像分割
2019/10/30 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
劲霸男装广告词改编版
2014/03/21 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
应届生简历自我评价
2015/03/11 职场文书
党支部工作总结2015
2015/04/01 职场文书
Python编程中Python与GIL互斥锁关系作用分析
2021/09/15 Python