码迷,mamicode.com
首页 > Web开发 > 详细

Xadmin组件的url设计

时间:2018-09-14 23:53:50      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:try   str   gray   service   static   stream   admin   nbsp   foo   

 
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),
]
 

Xadmin组件的url设计

标签:try   str   gray   service   static   stream   admin   nbsp   foo   

原文地址:https://www.cnblogs.com/changwoo/p/9649444.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!