您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何對django后臺admin下拉框進行過濾”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何對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下拉框進行過濾”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。