对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 23 Python
Python3 能振兴 Python的原因分析
Nov 28 Python
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
用python简单实现mysql数据同步到ElasticSearch的教程
May 30 Python
Python实现ping指定IP的示例
Jun 04 Python
简单谈谈python基本数据类型
Sep 26 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
python读取并写入mat文件的方法
Jul 12 Python
Django 数据库同步操作技巧详解
Jul 19 Python
python实现大文件分割与合并
Jul 22 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 Python
baselines示例程序train_cartpole.py的ImportError
May 20 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
Netflix将与CLAMP、乙一以及冲方丁等6名知名制作人合伙展开原创动画计划!
2020/03/06 日漫
php设计模式 Template (模板模式)
2011/06/26 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
jquery 上下滚动广告
2009/06/17 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
javascript操作符"!~"详解
2015/02/10 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
详解ES6通过WeakMap解决内存泄漏问题
2018/03/09 Javascript
详解React中合并单元格的正确写法
2019/01/08 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
2019/05/10 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
python内存管理分析
2015/04/08 Python
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
对python字典元素的添加与修改方法详解
2018/07/06 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
用Python实现BP神经网络(附代码)
2019/07/10 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
css3实现画半圆弧线的示例代码
2017/11/06 HTML / CSS
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
机械设计及其自动化专业求职信
2014/06/09 职场文书
参赛口号
2014/06/16 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
乡镇党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
放假通知
2015/04/14 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书