admin组件之URL分配

本文介绍如何在Django中自定义Admin组件的URL分配,通过编写路由函数实现类似Django Admin的强大功能,包括创建、读取、更新和删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值