對django后臺admin下拉框進行過濾的實例
使用django admin 自帶后臺
admin后臺下拉顯示的時候需要添加過濾條件,
因為表是自己關(guān)聯(lián)自己,同時還需要過濾掉自己, 需要獲取當(dāng)前對象的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] #這里獲取當(dāng)前對象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下拉框進行過濾的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
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(數(shù)據(jù)結(jié)構(gòu)與算法)實現(xiàn)對不原生支持比較操作的對象排序算法示例
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實現(xiàn)對不原生支持比較操作的對象排序算法,結(jié)合實例形式分析了Python針對類實例進行排序相關(guān)操作技巧,需要的朋友可以參考下2018-03-03
python中的單下劃線與雙下劃線以及絕對導(dǎo)入與相對導(dǎo)入
這篇文章主要介紹了python中的單下劃線與雙下劃線以及絕對導(dǎo)入與相對導(dǎo)入說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11
使用pycharm創(chuàng)建Django項目失敗的解決方案
使用PyCharm創(chuàng)建Django項目時遇到無法運行的問題,可以檢查Python的安裝路徑設(shè)置是否正確,在PyCharm的設(shè)置中找到項目解釋器的位置,確保路徑正確,如果不確定Python的安裝位置,可以在命令提示符中使用“where Python”命令查詢2024-09-09

