对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 2.7.x 和 3.x 版本的重要区别小结
Nov 28 Python
python简单获取数组元素个数的方法
Jul 13 Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
May 30 Python
数据清洗--DataFrame中的空值处理方法
Jul 03 Python
Scrapy框架使用的基本知识
Oct 21 Python
Django保护敏感信息的方法示例
May 09 Python
python如何实现异步调用函数执行
Jul 08 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
Python 实现一行输入多个数字(用空格隔开)
Apr 29 Python
keras实现基于孪生网络的图片相似度计算方式
Jun 11 Python
使用python对excel表格处理的一些小功能
Jan 25 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下检测字符串是否是utf8编码的代码
2008/06/28 PHP
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
document.documentElement && document.documentElement.scrollTop
2007/12/01 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
详解Vue生命周期的示例
2017/03/10 Javascript
react-router实现按需加载
2017/05/09 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
2017/05/24 jQuery
Bootstrap Table使用整理(一)
2017/06/09 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
php使用递归与迭代实现快速排序示例
2014/01/23 Python
利用python发送和接收邮件
2016/09/27 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
Django 实现将图片转为Base64,然后使用json传输
2020/03/27 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
Java中会存在内存泄漏吗,请简单描述
2016/12/22 面试题
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
应届生自荐信范文
2014/02/21 职场文书
学校招生宣传广告词
2014/03/19 职场文书
移风易俗倡议书
2014/04/15 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
费用申请报告范文
2015/05/15 职场文书
话题作文之生命的旋律
2019/12/17 职场文书