1. 程式人生 > 實用技巧 >10-crm專案-kingadmin,修改和新增頁面---filter_horizontal的實現

10-crm專案-kingadmin,修改和新增頁面---filter_horizontal的實現

修改和新增頁面---filter_horizontal的實現

新增filter_horizontal(資料量大的時候很方便)後顯示的樣子(可以批量新增,還可以在裡面搜尋)

下面我們在kingadmin中實現這個功能

(1)kingadmin/admin_base.py

# kingadmin/admin_base.py

class BaseKingAdmin(object):

    list_display = []
    list_filter = []
    search_fields = []
    #只讀
    readonly_fields = []
    filter_horizontal 
= []

(2)crm/kingadmin.py

(3)kingadmin/kingadmin_tags.py

@register.simple_tag
def get_available_m2m_data(field_name,admin_class):
    '''返回的是m2m欄位關聯表的所有資料'''
    #獲取欄位的物件
    field_obj = admin_class.model._meta.get_field(field_name)

    #consult_courses = models.ManyToManyField('Course',verbose_name='
諮詢課程') #consult_courses是一個m2m,通過consult_courses物件獲取到Course(也就是獲取到所有諮詢的課程) obj_list = field_obj.related_model.objects.all() return obj_list