南平市盟贝特志成网络技术有限公司
首页 | 联系方式 | 加入收藏 | 设为首页 | 手机站

产品目录

联系方式

联系人:业务部
电话: 00154-861715
邮箱:service@wyl19910906.com

当前位置:首页 >> 产品展示 >> 默认分类 >> 正文

admin组件之URL分配

详细信息:

admin组件之URL分配

在刚学admin的时候会惊奇的发现,就一个关于admin的URL

url(r'^admin/', admin.site.urls),

居然能够所有创建表格的增删改查
于是乎:
这么炫酷的技能我当然要get呀!!!


于是我要自己创建一个路由:Xadmin
# 下面是创建分布路由的方法
 url("^yuan/",([
 url(r'^test01/', ([
 url(r'^test04/', test04),
 url(r'^test05/', test05),
 ],None,None)),
 url(r'^test02/', test02),
 url(r'^test03/', test03),
 ],None,None)),

于是我们就想,能不能把上面的子路由用一个函数来实现

#这里url后面的参数,一个是路径,一个是视图函数,视图函数里面可以插入元组
urlpatterns = [
 url(r'^Xadmin/', (get_urls(),None,None)),
]

上面就是先创建一个路由,之后我们自己写入路由函数

def get_urls():
 print(admin.site._registry) # {Book:modelAdmin(Book),.......}
 # 定义一个空列表存放其他的路由
 temp=[]
 for model,admin_class_obj in admin.site._registry.items(): # 重点是实现视图model里面每个类的循环
 app_name=model._meta.app_label # 可以得到项目app的名字字符串
 model_name=model._meta.model_name # 可以得到model里面类的名字字符串
 # 配置路由路径,并配置字字路由
 temp.append(url(r'^{0}/{1}/'.format(app_name,model_name), (get_urls_2(),None,None)),)
 return temp
# 子路由的子路由
def get_urls_2():
 temp=[]
 temp.append(url(r"^$",list_view)) # 单表的查
 temp.append(url(r"^add/$",add_view)) # 单表的增
 temp.append(url(r"^(\d+)/change/$",change_view)) # 单表的改
 temp.append(url(r"^(\d+)/delete/$",delete_view)) # 单表的删
 return temp

通过上面的方法我们就可以实现admin的路由了!啊哈!

人生苦短,我学Python!