对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抓taobao图片爬虫
Oct 26 Python
python Matplotlib画图之调整字体大小的示例
Nov 20 Python
python如何实现int函数的方法示例
Feb 19 Python
好的Python培训机构应该具备哪些条件
May 23 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
May 29 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
Jul 19 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
安装好Pycharm后如何配置Python解释器简易教程
Jun 28 Python
使用Matplotlib 绘制精美的数学图形例子
Dec 13 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
Python logging日志模块 配置文件方式
Jul 12 Python
Window10上Tensorflow的安装(CPU和GPU版本)
Dec 15 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空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
简单实用的PHP文本缓存类实例
2019/03/22 PHP
treepanel动态加载数据实现代码
2012/12/15 Javascript
javascript实现多级联动下拉菜单的方法
2015/02/06 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
layui动态绑定事件的方法
2019/09/20 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
python编写爬虫小程序
2015/05/14 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
css3新增颜色表示方式分享
2014/04/15 HTML / CSS
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
外企财务年会演讲稿
2014/01/03 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
个人求职信范文分享
2014/01/31 职场文书
乡镇干部先进事迹材料
2014/02/03 职场文书
2015年企业新年寄语
2014/12/08 职场文书
艺术节开幕词
2015/01/28 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
使用springMVC所需要的pom配置
2021/09/15 Java/Android