一.在app中创建python文件(例如:kings.py)

如图:生成的数据为{"app名":{"表名"userprofileadmin类},实际上就是admin.py中的admin.site.register(models.UserProfile,UserProfileAdmin)注册

from app01 import models#{"app01":{"userprofile"userprofileadmin类}
enabled_admins={}
#1.创建基类
class BaseAdmin(object):list_display=[]list_filter=[]class UserPorfileAdmin(BaseAdmin):list_display = ["name","user_id"]#model=models.Customer AAA
class RoleAdmin(BaseAdmin):list_display = ["name"]'''
register函数相当于admin.site.register()
models_class._meta.app_label  app名字
models_class._meta.model_name 表名
'''
def register(models_class,admin_class=None):    #models_class是表名,admin_class相当于app01.admin中的UserProfileAdminif models_class._meta.app_label not in enabled_admins:enabled_admins[models_class._meta.app_label]={}admin_class.model=models_class                #相当于上AAA===将CustomerAdmin和Customer表关联enabled_admins[models_class._meta.app_label][models_class._meta.model_name]=admin_classregister(models.UserProfile,UserPorfileAdmin)
register(models.Role,RoleAdmin)

---------------总urls.py
urlpatterns = [path('admin/', admin.site.urls),path('app01/',include('app01.urls')),path('kingadmin/',include("kingadmin.urls")),
]

----------kingadmin-urls.py
from django.urls import path,re_path
from kingadmin import viewsurlpatterns = [path("",views.tables),re_path("(\w+)/(\w+)",views.tables_info,name="tables_info"),
]

-------kingadmin-views.pyfrom django.shortcuts import render
from kingadmin import kings# Create your views here.
def tables(request):# print(kings.enabled_admins["app01"]["userprofile"])return render(request,"kingadmin/tables.html",{"table_list":kings.enabled_admins})
def tables_info(request,app_name,table_name):return render(request,"kingadmin/table_info.html",{"table_list":kings.enabled_admins[app_name][table_name]})

-------tables.html<div class="panel-body"><div class="bs-example" data-example-id="simple-table"><table class="table">{% for app_name,app_tables in table_list.items %}<thead><tr><th>{{ app_name }}</th></tr></thead><tbody>{% for table_name,admin in app_tables.items %}<tr><!--此处url是当前的url:127.0.0.1:8000/kingadmin---><td><a href="{% url 'tables_info' app_name table_name %}">{% render_table_name admin %}</a></td><td>add</td><td>change</td></tr>{% endfor %}</tbody>{% endfor %}</table></div></div>

--------tables_info.html{%load "tags"%}
<div class="bs-example" data-example-id="simple-table"><table class="table"><thead><tr>{% for filed in table_list.list_display %} <!---tabel_list是userprofileadmin类--><td>{{ filed }}</td>                     <!--filed是字符串形式--->{% endfor %}</tr></thead><tbody>{% render_table_filed_value table_list as t%}   <!--这是返回的表中所有数据-->{% for i in t %}                                    <!--i为每一行的对象---><tr>{% table_filed_value i table_list as f%}  <!--每行得到的数据-->{{ f }}</tr>{% endfor %}</tbody></table></div></div>

-------tags.pyfrom django import template
from django.utils.safestring import mark_saferegister = template.Library()   #register的名字是固定的,不可改变

@register.simple_tag
def render_table_name(admin_class):      #返回表名(中文)return admin_class.model._meta.verbose_name@register.simple_tag
def render_table_filed_value(admin_class): #返回从models表中查询得到的数据data=admin_class.model.objects.all()return data@register.simple_tag
def table_filed_value(obj,admin_class):fil_datas=""for data in admin_class.list_display:get_data=getattr(obj,data)fil_datas+="<td>%s</td>"%(get_data)return mark_safe(fil_datas)

转载于:https://www.cnblogs.com/gaoyukun/p/9222025.html

Djang(在前端仿DjangoAdmin同样效果)相关推荐

  1. ajax仿百度搜索效果,利用autocomplete.js实现仿百度搜索效果(ajax动态获取后端[C#]数据)...

    实现功能描述: 1.实现搜索框的智能提示 2.第二次浏览器缓存结果 3.实现仿百度搜索 * { margin: 0px; padding: 0px; } #wrapper { height: 100% ...

  2. [纪录]仿IOS滚轮效果(竖直滑动选择器)

    今天想做一个类似这样的一个效果,可是UI的模板是参考IOS做的,于是就各种百度各种搜,最后让我找到了一个仿IOS滚轮的一个Demo,稍微研究了一下,发上来,大家一起学习,以后也方便我查看,就不用再去百 ...

  3. Android实现动态贴纸,Android开发之仿微博贴纸效果实现——进阶篇

    上个月写了一篇<Android开发之仿微博贴纸效果实现--基础篇>,文章中提到还有一篇进阶篇要写,很早就想动笔了,因中途去维护了开源库<高仿微信图片选择器2.0版本>,导致耽搁 ...

  4. android高仿京东秒杀,Android通过实现GridView的横向滚动实现仿京东秒杀效果

    实现GridView的横向滚动 效果如下图: 具体实现的代码 •1. 主界面布局代码:activity_main.xml android:layout_width="fill_parent& ...

  5. css3+jquery仿win7开机效果

    css3+jquery仿win7开机效果   <!doctype html> <html lang="en">  <head>   <me ...

  6. android 按钮回弹效果,Android仿IOS回弹效果 支持任何控件

    本文实例为大家分享了Android仿IOS回弹效果的具体代码,供大家参考,具体内容如下 效果图: 导入依赖: dependencies { // ... compile 'me.everything: ...

  7. iOS仿QQ分组效果

    本篇主要讲解仿QQ分组效果的实现,通过本遍的学习,估计都可以自己去实现了(老司机可以),在这里只说仿QQ分组的效果,代码简单,逻辑清晰.其他的功能的可以自行添加,好了,进入主题吧. 效果图 下面的是其 ...

  8. h5语音聊天audio实战|仿微信语音效果|h5即时聊天系统

    最近一段时间不是那么忙,就抽空整理了下之前的项目,因为之前有开发过H5聊天项目,只是觉得好些功能都没有特别的完善,所以就把之前项目重新开发了下,如是就有了这个html5版实时聊天语音项目weChatI ...

  9. 非常漂亮的Web前端波形点击效果

    非常漂亮的Web前端波形点击效果 介绍一种Web前端波形点击效果,第一次发文,大佬勿喷. 我的博客 介绍 Waves 这需要 Waves ,但是作者早在2018年就停止了对他的更新. 官网:Waves ...

最新文章

  1. php分页不跳转,分页源代码,分页时上一页下一页不显示,但可以跳转
  2. [POJ 3270]Cow Sorting
  3. 第四章:2.串 -- 串的模式匹配算法(KMP)
  4. [css] 如何禁用移动的选择高亮?
  5. lnmp构架——对tomcat详解
  6. hbase hmaster启动起来就自动关闭
  7. jquery环形3D立体旋转特效
  8. docker image
  9. 5.2.3 配置SQL Server代理
  10. c语言中文网vip所有资料,C语言中文网vip教程11.9
  11. pp助手苹果版本_苹果开放10.33降级通道,附降级教程及可降机型
  12. Scipy总结(constants)
  13. 静电除尘器工作原理应用实训教学QY-HJGC03
  14. Python 新手入门引导。
  15. 辛弃疾最经典的10首词
  16. 详解StringTokenizer函数
  17. 数据库中间件Mycat诞生记2
  18. 【Visual C++】游戏开发笔记十二 游戏输入消息处理(一) 键盘消息处理
  19. java闪光的星星_基于JavaScript实现飘落星星特效
  20. mysql嵌套查询效率低,连接查询代替嵌套查询提高select效率

热门文章

  1. 3个月定期存款利息怎么算?
  2. 没有上市的股权和股票有啥区别
  3. htaccess是什么文件
  4. iTunes怎么下载
  5. 成年人的生活到底有多心酸?
  6. 现在企业为何越来越难呢?
  7. 最近和一个创业中的朋友喝茶聊天
  8. 任老爷子退休以后,华为谁最有可能接手,为什么?
  9. 十条有用的 Go 技术
  10. cron java_cron表达式