对django后台admin下拉框进行过滤的实例
更新时间:2019年07月26日 12:00:26 作者:累兰羽
今天小编就为大家分享一篇对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下拉框进行过滤的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
免费为大家分享Pycharm激活码,适用最新版pycharm2020.2.3永久激活,pycharm2018,pycharm2019也可永久激活,可成功激活到2089年2020-11-11
pandas如何将dataframe中的NaN替换成None
这篇文章主要介绍了pandas如何将dataframe中的NaN替换成None问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-08-08
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
这篇文章主要介绍了Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法,结合实例形式分析了Python针对类实例进行排序相关操作技巧,需要的朋友可以参考下2018-03-03


最新评论