对django后台admin下拉框进行过滤的实例

使用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下拉框进行过滤的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • django表单实现下拉框的示例讲解

    方法一: queue = forms.ModelChoiceField(label=u'队列',queryset=Queue.objects.all()) 方法二: class ServerForm(forms.Form): queue = forms.ChoiceField(label=u'队列') def __init__(self,*args,**kwargs): super(ServerForm,self).__init__(*args,**kwargs) self.fields['qu

  • django admin 后台实现三级联动的示例代码

    在刚进公司的时候,要写一个需求,使用django的admin站点管理,实现一个二级联动的功能,因为要用到django自带的页面,因为不是自定义的,不能直接添加js代码.根据我自己的研究简单的记录一下大概步骤. 项目创建流程略过,这里使用MySQL数据库和py3为例. 示例项目大概功能,添加一个人物信息,地区通过三级联动选择. 一.项目创建成功后,首先写模型类代码: class AreaInfo(models.Model): """地区模型类"""

  • Django forms表单 select下拉框的传值实例

    今儿继续做项目,学习了Django的forms生成前端的代码. forms.py class SignupForm(forms.Form): username = forms.CharField(validators=[user_unique_validate, username_rule_validate, ], required=True, max_length=30, min_length=5, error_messages={'required': '用户名不能为空', 'max_len

  • Django后台admin的使用详解

    简述: Django的admin可以提供一个强大的后台管理功能,可以在web界面对数据库进行操作,我们需要修改admin.py将要操作的数据表注册到后台管理中 创建数据表: 为了便于演示,我们在models.py中创建一张img数据表规则 图中 verbo_name 是在admin界面显示表字段的名称,定义的class Meta中的verbo_name是在admin界面显示的表名 修改admin.py文件 from django.contrib import admin from app1 im

  • django 创建过滤器的实例详解

    django 创建过滤器 一.需求来源: 假如有一个模板文件有一个字符串变量,这个字符串变量中不能有任何的空格,而恰恰这个模板被很多个视图函数多调用,那么你每次在视图函数中穿这个字符串变量的时候,都要进行字符串的处理,这相对来说是比较麻烦的,django提供了一种叫做过滤器的方式,可以在模板中进行统一处理. 二.自定义模板库准备工作: 创建一个模板库分两步走: 第一,决定模板库应该放在哪里.你可以单独通过manage.py startapp创建一个app专门用来存放自定义的模板库:也可以放在项目

  • django 中QuerySet特性功能详解

    Book表的数据显示 id title price publish_id 2 Linux 30 1 3 项塔兰 45 2 4 追风筝的人 39.9 3 5 富爸爸 23 10 创建queryset 视图 函数, 可以使用的列表的方法,按索引,切片的方法取值,得到一个列表对象 def queryset(request): ret1 = Book.objects.all()[0] #QuerySet支持索引,切片操作 # print(ret1) #linux 得到一个具体的对象 ret2 = Boo

  • 对django后台admin下拉框进行过滤的实例

    使用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

  • angularjs 动态从后台获取下拉框的值方法

    angularjs 动态从后台获取下拉框的值,只要是使用repeat指令,后台提供的是一个list的对象,里面包含value和显示的值,如下: js文件: //职务等级和档次/军衔等级和档次,需要从后台获取:poslist,type:2/3/4/5 $scope.getDyActivityInforItems=function(){ serviceData.getData('inforinput/getAllSelectValueByType','POST',{ type:2 }).then(f

  • bootstrap实现多个下拉框同时搜索的实例

    1.第一个下拉框代码 <div class="btn-group col-sm-3 col-xs-6 util-btn-margin-bottom-5 quick-search"> <!--快速查询--> <div class="input-group"> <span class="input-group-addon"><i class="fa fa-search">

  • 使用bootstrap实现下拉框搜索功能的实例讲解

    背景 公司的小二后台有一个下拉框选择经销商的功能,由于选择的经销商过多,因此添加搜索功能. 前提 配置好Bootstrap相关的开发环境 主要内容 <div class="form-group"> <label class="col-sm-3 control-label" for="state">经销商信息</label> <div class="col-sm-3"> <s

  • jquery实现下拉框功能效果【实例代码】

    说不清楚,直接上图 <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> * { margin: 0; paddin

  • jQuery操作选中select下拉框的值代码实例

    这篇文章主要介绍了jQuery操作选中select下拉框的值代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 js和jQuery联合操作dom真的很好用,如果不是专业前端人员的话,我觉得吧前端语言只要熟练掌握js和jQuery就可以了. 获取select下拉框的几种情况如下: 1.获取第一个option的值 $('#test option:first').val(); 2.最后一个option的值 $('#test option:last

  • 基于jQuery的select下拉框选择触发事件实例分析

    本文实例讲述了基于jQuery的select下拉框选择触发事件实现方法.分享给大家供大家参考,具体如下: 我一直以来都认为,select 下拉框选择对选项 options 使用 onclick 注册事件即可,如下: <select> <option value="0" onclick="func(0)">选项一</option> <option value="1" onclick="func(1

  • Android实现三级联动下拉框 下拉列表spinner的实例代码

    主要实现办法:动态加载各级下拉值的适配器 在监听本级下拉框,当本级下拉框的选中值改变时,随之修改下级的适配器的绑定值              XML布局: 复制代码 代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_w

  • jQuery实现下拉框选择图片功能实例

    本文实例讲述了jQuery实现下拉框选择图片功能.分享给大家供大家参考.具体如下: 让下拉框中显示图片,并可选择对应图片,让select下拉框不仅可显示文字,还可以显示图片内容.为了更生动些,这里还加入了jQuery动画效果,当展开Select列表的时候,图片渐变显示.使用了一个jQ插件:imageselect.js,使用效果的朋友可以自己下载吧. 运行效果截图如下: 具体代码如下: <!DOCTYPE html> <head> <title>支持图片选择的jQuery

  • Java 使用POI生成带联动下拉框的excel表格实例代码

    废话不多说了,直接给大家贴代码了,具体代码如下所示: import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.apache.poi.hssf.

随机推荐