zoukankan      html  css  js  c++  java
  • Xadmin组件的url设计

     
    1.注册一个新的app,创建Xadmin.py
     
      from django.conf.urls import url
    from django.shortcuts import HttpResponse, render
     
     
    class ModelXadmin(object):
        def __init__(self, model, site):
            self.model = model
            self.site = site
     
        def list_view(self, request):
     
            data_list = self.model.objects.all()
            return render(request, 'list_view.html', {'data_list':data_list})
        def add_view(self, request):
            return HttpResponse('add_view')
        def change_view(self, request, num):
            return HttpResponse('change_view')
        def delete_view(self, request, num):
            return HttpResponse('delete_view')
     
        def get_urls_operate(self):
            temp = []
            temp.append(url(r'^$'self.list_view))
            temp.append(url(r'^add/$'self.add_view))
            temp.append(url(r'^(d+)/delete'self.delete_view))
            temp.append(url(r'^(d+)/change'self.change_view))
            return temp
     
        @property
        def urls_operate(self):
            return self.get_urls_operate(), NoneNone
     
     
    class XadminSite(object):
        def __init__(self):
            self._registry = {}
     
        def get_urls(self):
            temp = []
            for model, admin_class_obj in self._registry.items():
                model_name = model._meta.model_name
                app_name = model._meta.app_label
                temp.append(url(r'^{0}/{1}/'.format(app_name, model_name), admin_class_obj.urls_operate))
            return temp
     
        @property
        def urls(self):
            return self.get_urls(), NoneNone
     
        def register(self, model, admin_class=None**options):
            if not admin_class:
                admin_class = ModelXadmin
            self._registry[model] = admin_class(model, self)
     
    site = XadminSite()
     
    2.在另外的app下创建Xadmin.py
     
    from Xadmin.service.Xadmin import site
     
    from app02.models import *
     
    site.register(demo)
    site.register(demo02)
    site.register(demo03)
    site.register(Food)
     
    print('-registry', site._registry)
    print('--'*20)
     
    3.url.py
     
    from Xadmin.service.Xadmin import site
    urlpatterns = [
        url(r'^Xadmin/', site.urls),
    ]
     
  • 相关阅读:
    html基础知识
    Python yield 使用浅析
    XSS跨站攻击
    box-sizing的用法(笔记)
    编译原理中DFA最小化
    提醒自己!!!
    Eclipse下运行maven项目失败且Tomcat服务器也启动不了
    Descriptio Resource Path LocationType Archive for required library: 'D:/apache-maven/apache-maven-3.6.0/mavenrepository/org/springframework/spring-aspects/4.3.7.RELEASE/spring-aspects-4.3.7.RELEASE.
    Eclispe创建maven工程缺失web.xml报web.xml is missing and <failOnMissingWebXml> is set to true的错误
    ssm 出现 Method threw 'org.apache.ibatis.binding.BindingException' exception.Invalid bound statement (not found)……
  • 原文地址:https://www.cnblogs.com/changwoo/p/9649444.html
Copyright © 2011-2022 走看看