对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数据类型转换函数总结
Mar 11 Python
浅析Python多线程下的变量问题
Apr 28 Python
Python中文字符串截取问题
Jun 15 Python
Mac 上切换Python多版本
Jun 17 Python
python如何实现内容写在图片上
Mar 23 Python
python直接获取API传递回来的参数方法
Dec 17 Python
Python闭包和装饰器用法实例详解
May 22 Python
windows10下安装TensorFlow Object Detection API的步骤
Jun 13 Python
Pandas之DataFrame对象的列和索引之间的转化
Jun 25 Python
Python中的正则表达式与JSON数据交换格式
Jul 03 Python
解决python使用list()时总是报错的问题
May 05 Python
Python魔术方法专题
Jun 19 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
解析Extjs与php数据交互(增删查改)
2013/06/25 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
php操作(删除,提取,增加)zip文件方法详解
2015/03/12 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
jquery插件 autoComboBox 下拉框
2010/12/22 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
用js来获取上传的文件名纯粹是为了美化而用
2013/10/23 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
Python中AND、OR的一个使用小技巧
2015/02/18 Python
Python随机函数random()使用方法小结
2018/04/29 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
python 字典中取值的两种方法小结
2018/08/02 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
什么是URL
2015/12/13 面试题
公司财务自我评价分享
2013/12/17 职场文书
转让协议书范本
2014/04/15 职场文书
初一新生军训方案
2014/05/22 职场文书
家庭贫困证明书(3篇)
2014/09/15 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
同事打架检讨书
2015/05/06 职场文书
民间借贷借条范本
2015/05/25 职场文书
律师催款函范文
2015/06/24 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs
Python中的socket网络模块介绍
2022/07/23 Python