Django項目:CRM(客戶關係管理系統)--29--21PerfectCRM實現King_admin查看頁面美化

 

 1 {#table_data_list.html#}  2 {## ————————08PerfectCRM實現King_admin顯示註冊表的字段表頭————————#}  3 
 4 {% extends 'king_master/king_index.html' %} {#繼承模板#}  5 {% load kingadmin_tags %} {#經過本身定義標籤獲取中文,Django中利用filter與simple_tag爲前端自定義函數的實現方法#}  6 
 7 {% block right-container-content %}  8 
 9 {# # ————————21PerfectCRM實現King_admin查看頁面美化———————— #}  10     <div class="row" style="margin-bottom: 20px" >
 11         <ol class="breadcrumb">
 12           <li><a href="/king_admin/">主頁</a></li>
 13           <li><a href="/king_admin/{% get_app_name admin_obj.model %}/">{% get_app_name admin_obj.model %}</a></li>
 14           <li class="active">{% get_model_verbose_name admin_obj.model%}</li>
 15         </ol>
 16     </div>
 17 {# # ————————21PerfectCRM實現King_admin查看頁面美化———————— #}  18 
 19  {#調用kingadmin_tags裏的方法 獲取 base_admin的值 #}  20     <h4>{% get_model_verbose_name admin_obj.model  %}</h4>
 21 
 22 
 23 
 24  {## ————————15PerfectCRM實現King_admin多條件過濾————————#}  25  {#判斷 crm/kingadmin.py 裏class CustomerAdmin(BaseAdmin):有沒有使用list_filter = ('source',) #}  26  {% if admin_obj.list_filter %}  27         <div class="row">
 28             <form>
 29  {#循環 上面 list_filter = ('source',) 的字段 #}  30  {% for filter_column in admin_obj.list_filter %}  31                     <div class="col-lg-1">{#最多12份 空間 #}  32                         <div>{{ filter_column }}</div>
 33 
 34 {#到後端取值,傳參數到後端, kingadmin/templatetags/kingadmin_tags.py的def get_filter_field (filter_column,admin_obj): #}  35                         <div>{% get_filter_field  filter_column admin_obj %}</div>
 36                     </div>
 37  {% endfor %}  38                     <div>
 39                         <input type="submit" class="btn btn-success" value="過濾">
 40                     </div>
 41 
 42  {## ————————17PerfectCRM實現King_admin單列排序————————#}  43                     <div>
 44  {# 隱藏 #} {# 過濾後排序功能 #}  45                         <input type="hidden" name="_o" value="{% get_current_orderby_key request %}">
 46                     </div>
 47  {## ————————17PerfectCRM實現King_admin單列排序————————#}  48 
 49  {## ————————18PerfectCRM實現King_admin搜索關鍵字————————#}  50                 <hr> {#過濾後搜索功能1#} {## 搜索框裏保留搜索值 #}  51 {#                <input type="text" name="_q" value="{% get_search_key request %}">#}  52 
 53                 <div class="row">
 54                     <div class="col-lg-2">
 55                         <input type="text" name="_q" value="{% get_search_key request %}">
 56                     </div>
 57                     <div class="col-lg-2">
 58                         <input type="submit" class="btn btn-success" value="搜索">
 59                     </div>
 60 
 61                     <div style='color: red'> 搜索條件包含:  62  {% for search_field in admin_obj.search_fields %}  63  {{ search_field }}  64  +  65  {% endfor %}  66                     </div>
 67                 </div>
 68  {## ————————18PerfectCRM實現King_admin搜索關鍵字————————#}  69 
 70 
 71             </form>
 72         </div>
 73  {% endif %}  74  {## ————————15PerfectCRM實現King_admin多條件過濾————————#}  75 
 76     
 77 
 78 
 79     <table class="table table-hover">
 80           <thead>
 81             <tr>
 82 
 83  {## ————————17PerfectCRM實現King_admin單列排序————————#}  84  {#循環調用kingadmin/base_admin裏的class BaseAdmin下的list_display = () 方法#}  85 {# {% for column in admin_obj.list_display %}#}  86 {#                    <th>{{ column }}</th>#}  87 {# {% endfor %}#}  88 {# #}  89  {% for column in admin_obj.list_display %}  90 {#                    <th>{{ column }}</th>#} {#過濾功能1#}  91  {#排序功能1#}  92                     <th>
 93 {#                        <a href="?_o={{ column }}">{{ column }}</a>#} {#http://127.0.0.1:8000/kingadmin/crm/customer/?_o=qq#}  94  {## kingadmin排序功能#}  95 {#                        <a href="?_o={% get_orderby_key request column %}">{{ column }}</a>#}  96 
 97  {## kingadmin排序功能#} {# 過濾後排序功能 #}  98                         <a href="?_o={% get_orderby_key request column %}{% generate_filter_url admin_obj %}">{{ column }}</a>
 99 
100  {#顯示排序圖標#} 101  {% display_order_by_icon request column %} 102 
103                      </th>
104  {#排序功能1#} 105  {% endfor %} 106  {## ————————17PerfectCRM實現King_admin單列排序————————#} 107 
108 
109             </tr>
110           </thead>
111 
112  {## ————————09PerfectCRM實現King_admin顯示註冊表的內容————————#} 113           <tbody>
114  {#循環調用kingadmin/views 裏的def table_data_list下的admin_obj.querysets #} 115  {% for obj in admin_obj.querysets %} 116                 <tr>
117  {#經過kingadmin_tags在後臺處理 再傳到前端 #} 118  {#調用kingadmin/templateags/kingadmin_tags 裏的def build_table_row(admin_obj,obj):#} 119 
120  {## ————————19PerfectCRM實現King_admin數據修改————————#} 121  {% build_table_row admin_obj obj %}{# kingadmin動態生成model編輯 #} 122  {## ————————19PerfectCRM實現King_admin數據修改————————#} 123 
124                 </tr>
125  {% endfor %} 126           </tbody>
127  {## ————————09PerfectCRM實現King_admin顯示註冊表的內容————————#} 128 
129     </table>
130 
131  {## ————————12PerfectCRM實現King_admin分頁上下頁————————#} 132 {#    <div class="row">#} 133 {#        <div class="pagination">#} 134 {#            <span class="step-links">#} 135 {# {% if admin_obj.querysets.has_previous %}#} 136 {##} 137  {## ————————15PerfectCRM實現King_admin多條件過濾————————#} 138 {#                     <a href="?page={{ admin_obj.querysets.previous_page_number }}#} 139 {# <a href="?page={{ admin_obj.querysets.previous_page_number }}{% generate_filter_url admin_obj %}">上一頁 </a>#} 140  {## ————————15PerfectCRM實現King_admin多條件過濾————————#} 141 {##} 142 {# {% endif %}#} 143 {##} 144 {#                <span class="current">#} 145 {# 第{{ admin_obj.querysets.number }}頁,共{{ admin_obj.querysets.paginator.num_pages }}頁#} 146 {#                </span>#} 147 {##} 148 {# {% if admin_obj.querysets.has_next %}#} 149 {##} 150  {## ————————15PerfectCRM實現King_admin多條件過濾————————#} 151 {#                    <a href="?page={{ admin_obj.querysets.next_page_number }}#} 152 {# <a href="?page={{ admin_obj.querysets.next_page_number }}{% generate_filter_url admin_obj %}">下一頁</a>#} 153  {## ————————15PerfectCRM實現King_admin多條件過濾————————#} 154 {##} 155 {# {% endif %}#} 156 {#            </span>#} 157 {#        </div>#} 158 {#    </div>#} 159  {## ————————12PerfectCRM實現King_admin分頁上下頁————————#} 160 
161 {## ————————13PerfectCRM實現King_admin分頁頁數————————#} 162 {#    <nav aria-label="...">#} 163 {#      <ul class="pagination">#} 164 {#        <li class="disabled"></li>#} 165 {# {% for page in admin_obj.querysets.paginator.page_range %} {#循環 分頁 範圍#} 166 {##} 167 {# {% if page == admin_obj.querysets.number %} {#當前頁高亮,不然不加高亮#} 168 {#                  <li class="active">#} 169 {# {% else %}#} 170 {#                   <li >#} 171 {# {% endif %}#} 172 {##} 173  {#後臺拼接返回,kingadmin/templatetags/kingadmin_tags.py 裏def generate_filter_url(admin_obj):#} 174 {#              <a href="?page={{ page }}{% generate_filter_url admin_obj %}">{{ page }}</a>#} 175 {#              </li>#} 176 {# {% endfor %}#} 177 {#      </ul>#} 178 {#    </nav>#} 179 {## ————————13PerfectCRM實現King_admin分頁頁數————————#} 180 
181 {## ————————14PerfectCRM實現King_admin分頁的省略顯示————————#} 182     <div class="row panel-body">
183         <nav aria-label="...">
184             <ul class="pagination">
185                 <!--若是有上一頁-->
186  {% if admin_obj.querysets.has_previous %} 187  {## ————————18PerfectCRM實現King_admin搜索關鍵字————————#} 188  {## ————————17PerfectCRM實現King_admin單列排序————————#} 189 {#                    <li><a href="?page={{ admin_obj.querysets.previous_page_number }}{% generate_filter_url admin_obj %}"#} 190 {# aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li>#} 191 
192  {#獲取上一個數字#} {# kingadmin排序功能 # 過濾後排序功能#排序#} {#分頁#} 193 {#<li><a href="?page={{ admin_obj.querysets.previous_page_number }}{% generate_order_by_url request %}{% generate_filter_url admin_obj %}"#} 194 {# aria-label="Previous"><span aria-hidden="true">上頁</span></a></li>#} 195  {## ————————17PerfectCRM實現King_admin單列排序————————#} 196                     <li><a href="?page={{ admin_obj.querysets.previous_page_number }} 197 {% generate_order_by_url request %}{% generate_filter_url admin_obj %}&_q={% get_search_key request %}"
198  aria-label="Previous"><span aria-hidden="true">上頁</span></a></li>
199  {## ————————18PerfectCRM實現King_admin搜索關鍵字————————#} 200  {% else %} 201                     <li class="disabled">
202                         <a href="#" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li>
203  {% endif %} 204                 <!--#分頁的省略顯示 kingadmin/templatetags/kingadmin_tags.py裏def pag_omit(request,admin_obj):-->
205  {% pag_omit request admin_obj %} 206                 <!--若是有下一頁-->
207  {% if admin_obj.querysets.has_next %} 208  {## ————————18PerfectCRM實現King_admin搜索關鍵字————————#} 209  {## ————————17PerfectCRM實現King_admin單列排序————————#} 210 {#                    <li><a href="?page={{ admin_obj.querysets.next_page_number }}{% generate_filter_url admin_obj %}"#} 211 {# aria-label="Previous"><span aria-hidden="true">&raquo;</span></a></li>#} 212 
213 {#<li><a href="?page={{ admin_obj.querysets.next_page_number }}{% generate_order_by_url request %}{% generate_filter_url admin_obj %}"#} 214 {# aria-label="Previous"><span aria-hidden="true">下頁</span></a></li>#} 215  {## ————————17PerfectCRM實現King_admin單列排序————————#} 216                     <li><a href="?page={{ admin_obj.querysets.next_page_number }} 217 {% generate_order_by_url request %}{% generate_filter_url admin_obj %}&_q={% get_search_key request %}"
218  aria-label="Previous"><span aria-hidden="true">下頁</span></a></li>
219  {## ————————18PerfectCRM實現King_admin搜索關鍵字————————#} 220 
221  {% else %} 222                     <li class="disabled"><a href="#" aria-label="Previous"><span aria-hidden="true">&raquo;</span></a>
223                     </li>
224  {% endif %} 225             </ul>
226         </nav>
227     </div>
228 {## ————————14PerfectCRM實現King_admin分頁的省略顯示————————#} 229 
230 
231 {% endblock %} 232 {## ————————08PerfectCRM實現King_admin顯示註冊表的字段表頭————————#}
{#table_data_list.html#}

 

 

 

url(r'^(\w+)/$', views.table_index, name='table_index'),  # 單個具體app頁面

 1 #views
 2 
 3 # ————————02PerfectCRM建立ADMIN頁面————————
 4 from django.shortcuts import render  5 
 6 # ————————04PerfectCRM實現King_admin註冊功能————————
 7 # from django import conf #配置文件
 8 # print("dj conf:",conf) #配置文件
 9 # print("dj conf:",conf.settings)#配置文件.設置
 10 # ————————04PerfectCRM實現King_admin註冊功能————————
 11 
 12 # ————————04PerfectCRM實現King_admin註冊功能————————
 13 from king_admin import app_config #自動調用 動態加載類和函數
 14 # ————————04PerfectCRM實現King_admin註冊功能————————
 15 
 16 # ————————04PerfectCRM實現King_admin註冊功能————————
 17 # from king_admin.base_admin import registered_sites # registered_sites={}
 18 from king_admin import base_admin  19 # ————————04PerfectCRM實現King_admin註冊功能————————
 20 
 21 # ————————11PerfectCRM實現King_admin基本分頁————————
 22 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger  # 分頁功能
 23 # ————————11PerfectCRM實現King_admin基本分頁————————
 24 
 25 def app_index(request):  26     # ————————04PerfectCRM實現King_admin註冊功能————————
 27     # for app in conf.settings.INSTALLED_APPS:
 28     # print(app)#循環打印 配置文件.設置.安裝應用程序#.Perfectcustomer\settings裏的INSTALLED_APPS列表
 29     # ————————04PerfectCRM實現King_admin註冊功能————————
 30     
 31     # ————————04PerfectCRM實現King_admin註冊功能————————
 32     # return render(request, 'king_admin/app_index.html')
 33     # print("registered_sites",registered_sites)
 34     # return render(request, 'king_admin/app_index.html')
 35     # ————————04PerfectCRM實現King_admin註冊功能————————
 36 
 37     # ————————04PerfectCRM實現King_admin註冊功能————————
 38     # print("registered_sites", base_admin.registered_sites)
 39     # return render(request, 'king_admin/app_index.html')
 40     # ————————04PerfectCRM實現King_admin註冊功能————————
 41     
 42     # ————————05PerfectCRM實現King_admin註冊功能獲取內存————————
 43     print("registered_sites",base_admin.site.registered_sites)  44     return render(request, 'king_admin/app_index.html', {"site": base_admin.site})  45 # ————————05PerfectCRM實現King_admin註冊功能獲取內存————————
 46 
 47 # ————————02PerfectCRM建立ADMIN頁面————————
 48 
 49 
 50 # ————————13PerfectCRM實現King_admin分頁頁數————————
 51 #處理def table_data_list(request,app_name,model_name):裏的內容,
 52 def filter_querysets(request,queryset):  53     condtions = {}  54     for k,v in request.GET.items():#不須要空的,判斷是否爲空
 55         # ————————18PerfectCRM實現King_admin搜索關鍵字————————
 56         # ————————17PerfectCRM實現King_admin單列排序————————
 57         # if k=="page":continue##kingadmin分頁功能
 58 
 59         # if k=="page":continue##kingadmin分頁功能 #寫法一
 60         # elif k=="_o":continue##kingadmin排序功能 <a href="?_o={{ column }}">{{ column }}</a>
 61 
 62         # if k in ("page","_o") :continue #kingadmin分頁功能 #kingadmin排序功能 #寫法二
 63 
 64         # if k == "page"or k == "_o": #保留的分頁關鍵字 和 排序關鍵字 #寫法三
 65         # continue #continue是結束單次循環
 66         # ————————17PerfectCRM實現King_admin單列排序————————
 67         if k in ("page", "_o", "_q"): continue  # kingadmin分頁,排序,搜索#判斷標籤是否存在 自定義的名稱
 68         # ————————18PerfectCRM實現King_admin搜索關鍵字————————
 69 
 70 
 71         # ————————15PerfectCRM實現King_admin多條件過濾————————
 72         if v:  73             condtions[k] = v  74         # ————————15PerfectCRM實現King_admin多條件過濾————————
 75     query_res = queryset.filter(**condtions)  76     return query_res,condtions  77 # ————————13PerfectCRM實現King_admin分頁頁數————————
 78 
 79 # ————————08PerfectCRM實現King_admin顯示註冊表的字段表頭————————
 80 def table_data_list(request,app_name,model_name):  81     #經過2個參數到base_admin裏獲取class AdminRegisterException(Exception): 的對象
 82     admin_obj = base_admin.site.registered_sites[app_name][model_name]  #base_admin
 83 
 84     # ————————09PerfectCRM實現King_admin顯示註冊表的內容————————
 85     admin_obj.querysets =  admin_obj.model.objects.all()#取數據 傳到 前端
 86     # ————————09PerfectCRM實現King_admin顯示註冊表的內容————————
 87 
 88     # ————————11PerfectCRM實現King_admin分頁顯示條數————————
 89     # from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger # 分頁功能#放在頂上導入
 90     obj_list =  admin_obj.model.objects.all()#取數據 傳到 前端 #base_admin #獲取傳過來的全部對象
 91 
 92     # ————————13PerfectCRM實現King_admin分頁頁數————————
 93     queryset, condtions = filter_querysets(request, obj_list)  #base_admin # 調用條件過濾
 94     # ————————13PerfectCRM實現King_admin分頁頁數————————
 95 
 96     # ————————18PerfectCRM實現King_admin搜索關鍵字————————
 97     queryset = get_queryset_search_result(request,queryset,admin_obj)##搜索後
 98     # ————————18PerfectCRM實現King_admin搜索關鍵字————————
 99 
100     # ————————17PerfectCRM實現King_admin單列排序————————
101     sorted_queryset = get_orderby(request, queryset) #過濾後的結果
102     # ————————15PerfectCRM實現King_admin多條件過濾————————
103     # paginator = Paginator(obj_list,admin_obj.list_per_page) #kingadmin裏class CustomerAdmin(BaseAdmin):
104     # paginator = Paginator(queryset, admin_obj.list_per_page)
105     # ————————15PerfectCRM實現King_admin多條件過濾————————
106     paginator = Paginator(sorted_queryset, admin_obj.list_per_page) 107     # ————————17PerfectCRM實現King_admin單列排序————————
108 
109 
110     page = request.GET.get('page') 111     try: 112         objs = paginator.page(page)  # 當前的頁面的數據
113     except PageNotAnInteger: 114         # 若是頁面不是一個整數,交付第一頁。
115         objs = paginator.page(1) 116     except EmptyPage: 117         # 若是頁面的範圍(例如9999),交付最後一頁的搜索結果。
118         objs = paginator.page(paginator.num_pages) 119     admin_obj.querysets = objs  # base_admin
120 
121     # ————————13PerfectCRM實現King_admin分頁頁數————————
122     admin_obj.filter_condtions = condtions  # base_admin
123     # ————————13PerfectCRM實現King_admin分頁頁數————————
124 
125     # ————————11PerfectCRM實現King_admin分頁顯示條數————————
126 
127     return render(request,"king_admin/table_data_list.html",locals()) 128 # ————————08PerfectCRM實現King_admin顯示註冊表的字段表頭————————
129 
130 
131 
132 # ————————17PerfectCRM實現King_admin單列排序————————
133 def get_orderby(request,queryset): 134     # order_by_key = request.GET.get("_o") #獲取URL裏有沒有("_o") <a href="?_o={{ column }}">{{ column }}</a>
135     # #頁面剛開始沒有這個值
136     # if order_by_key != None: #有("_o")這個值 就進行排序
137     # query_res = queryset.order_by(order_by_key)
138     # else: #沒有就不排序,直接返回
139     # query_res = queryset
140     # return query_res #排序時會錯
141 
142     orderby_key = request.GET.get("_o") 143     if orderby_key: 144         return queryset.order_by(orderby_key) 145     return queryset 146 
147 #在table_data_list添加
148 # def table_data_list(request,app_name,model_name): #詳細列表
149 # sorted_queryset = get_orderby(request, queryset)
150 #在filter_querysets添加
151 #if k == "page"or k == "_o": #保留的分頁關鍵字 和 排序關鍵字
152 # ————————17PerfectCRM實現King_admin單列排序————————
153 
154 # ————————18PerfectCRM實現King_admin搜索關鍵字————————
155 from django.db.models import Q 156 def get_queryset_search_result(request,queryset,admin_obj): 157     search_key = request.GET.get("_q", "")#取定義名,默認爲空
158     q_obj = Q()#多條件搜索 #from django.db.models import Q
159     q_obj.connector = "OR"  # or/或 條件
160     for column in admin_obj.search_fields: #搜索目標crm/kingadmin裏class CustomerAdmin(BaseAdmin):search_fields = ('name','qq',)
161         q_obj.children.append(("%s__contains" % column, search_key)) #運態添加多個條件
162     res = queryset.filter(q_obj) #對數據庫進行條件搜索
163     return res   #返回結果
164 #在table_data_list添加
165 #def table_data_list(request,app_name,model_name): #詳細列表
166 # queryset = get_queryset_search_result(request,queryset,admin_obj)
167 # ————————18PerfectCRM實現King_admin搜索關鍵字————————
168 
169 # ————————19PerfectCRM實現King_admin數據修改————————
170 from  king_admin import forms 171 #修改內容
172 # def table_change(request,app_name,model_name):
173 # obj_form = forms.CustomerModelForm() #建立一個空表單
174 # return render(request,"kingadmin/table_change.html",locals())
175 
176 def table_change(request,app_name,model_name,obj_id): 177     admin_obj = base_admin.site.registered_sites[app_name][model_name]   #獲取表對象
178                 #kingadmin/forms.py裏def CreateModelForm(request,admin_obj):
179     model_form = forms.CreateModelForm(request,admin_obj=admin_obj)  ##modelform 生成表單 加驗證
180     # obj_form = model_form() # 表單
181     obj = admin_obj.model.objects.get(id=obj_id)#根據ID獲取數據記錄
182 
183     # ————————20PerfectCRM實現King_admin數據修改美化————————
184     # #面向對象最重要的概念就是類(Class)和實例(Instance),必須牢記類是抽象的模板,好比Student類,而實例是根據類建立出來的一個個具體的「對象」,每一個對象都擁有相同的方法,但各自的數據可能不一樣。
185     # obj_form = model_form(instance=obj) # 數據傳入表單
186 
187     if request.method == "GET": 188         obj_form = model_form(instance=obj) 189     elif request.method == "POST": 190         obj_form = model_form(instance=obj,data=request.POST) 191         if obj_form.is_valid(): 192  obj_form.save() 193     # ————————20PerfectCRM實現King_admin數據修改美化————————
194 
195     return render(request,"king_admin/table_change.html",locals()) 196 # ————————19PerfectCRM實現King_admin數據修改————————
197 
198 # ————————21PerfectCRM實現King_admin查看頁面美化————————
199 #單個具體app頁面
200 def table_index(request,app_name): 201     bases=base_admin.site.registered_sites[app_name]#取出對應app對象
202     return render(request, 'king_admin/table_index.html', {"site":bases,'app_name':app_name}) 203 # ————————21PerfectCRM實現King_admin查看頁面美化————————
#views

 

 1 {#table_index.html#}  2 {## ————————21PerfectCRM實現King_admin查看頁面美化————————#}  3 {% extends 'king_master/king_index.html' %} {#繼承模板#}  4 {% load kingadmin_tags %} {#經過本身定義標籤獲取中文,Django中利用filter與simple_tag爲前端自定義函數的實現方法#}  5 
 6 {% block right-container-content %}  7 
 8     <div class="row" style="margin-bottom: 20px" >
 9         <ol class="breadcrumb">
10           <li><a href="/king_admin/">主頁</a></li>
11           <li><a href="/king_admin/{{ app_name }}/">{{ app_name }}</a></li>
12         </ol>
13     </div>
14 
15  {% block container %} 16     <div class="row">
17 {# {% for app_name,app_tables in site.registered_sites.items %}#} 18 {# {% for app_name,app_tables in site.items %}#} 19                 <div class="panel panel-info">
20 {#                    <thead>#} 21                     <div class="panel-heading">
22 {#                        <tr>#} 23                             <h3 class="panel-title">{{ app_name }}</h3>
24 {#                        </tr>#} 25                     </div>
26 {#                    </thead>#} 27                     <div class="panel-body">
28                     <table class="table table-hover">
29                         <tbody>
30  {% for model_name,admin_class in site.items %} 31                             <tr>
32                                 <th>
33                                     <a href="/king_admin/{% get_app_name admin_class.model %}/{% get_model_name admin_class.model %}/">
34                                         {% get_model_verbose_name admin_class.model %}</a>
35                                 </th>
36                             </tr>
37  {% endfor %} 38                         </tbody>
39                     </table>
40                     </div>
41                 </div>
42 {# {% endfor %}#} 43         </div>
44  {% endblock %} 45 {% endblock %} 46 {## ————————21PerfectCRM實現King_admin查看頁面美化————————#}
{#table_index.html#}

 

 

 

 1 {#app_index.html#}  2 {## ————————02PerfectCRM建立ADMIN頁面————————#}  3 {% extends 'king_master/king_index.html' %}  4 {## ————————02PerfectCRM建立ADMIN頁面————————#}  5 
 6 {## ————————06PerfectCRM實現King_admin註冊功能獲取內存優化處理————————#}  7 {% load kingadmin_tags %}  8 {## ————————06PerfectCRM實現King_admin註冊功能獲取內存優化處理————————#}  9 
10 {## ————————05PerfectCRM實現King_admin註冊功能獲取內存————————#} 11 {% block right-container-content %} 12 
13  {#從base_admin傳到views,views返回的值items()方法把字典轉換成列表#} 14  {% for app,app_tables in site.registered_sites.items %} 15 
16         <table class="table table-hover">
17               <thead>
18                 <tr>
19  {## ————————21PerfectCRM實現King_admin查看頁面美化————————#} 20 {#                    <h3>{{ app }}</h3>{#循環APP名字#} 21                     <a href="/king_admin/{{ app }}"><h3>{{ app }}</h3></a>
22  {## ————————21PerfectCRM實現King_admin查看頁面美化————————#} 23                 </tr>
24               </thead>
25 
26               <tbody>
27  {#上層循環的變量值,items()方法把字典轉換成列表#} 28  {% for model_name,admin_class in app_tables.items %} 29                         <tr>
30  {## ————————05PerfectCRM實現King_admin註冊功能獲取內存————————#} 31 {#                              <th >{{ model_name }}{{ admin_class }} </th>#} 32 {#                                <th >{{ admin_class.mode }}{{ admin_class }} </th>#} 33  {## ————————05PerfectCRM實現King_admin註冊功能獲取內存————————#} 34 
35  {## ————————06PerfectCRM實現King_admin註冊功能獲取內存優化處理————————#} 36 {#                             <th >{% get_app_name admin_class.model %}{{ admin_class }} </th>#} 37  {## ————————06PerfectCRM實現King_admin註冊功能獲取內存優化處理————————#} 38 
39  {# # ————————07PerfectCRM實現King_admin顯示註冊的表————————#} 40                             <th ><a href="/king_admin/{% get_app_name admin_class.model %}/{% get_model_name admin_class.model %}/">
41                                                           {% get_model_verbose_name admin_class.model %}</a>  </th>
42  {# # ————————07PerfectCRM實現King_admin顯示註冊的表————————#} 43                         </tr>
44  {% endfor %} 45               </tbody>
46         </table>
47  {% endfor %} 48 
49 {% endblock %} 50 
51 
52 {## ————————05PerfectCRM實現King_admin註冊功能獲取內存————————#}
{#app_index.html#}

 

 

相關文章
相關標籤/搜索