重写Django管理视图方法

2 投票
2 回答
2649 浏览
提问于 2025-04-16 07:12

我需要在管理面板中覆盖一个添加表单。

我想通过写一个视图来实现这个目标,然后这个视图会指向最终结果的管理视图。

这有点像这样(其中 admin_basic_ass_user_view 是管理视图)

@required_login
def add_user(request):
    if condition:
        return admin_basic_add_user_view(request)
    return render_to_response("admin/auth/user/add_form.html", { ... })

有什么想法吗?

2 个回答

1

在你的urls.py文件中添加类似下面的内容

((r'^admin/auth/users/add/$', 'Project.SomeAPP.admin_views.add_user'),

这个路径需要指向你新创建的视图。你应该能在管理界面的添加用户页面看到你新视图的效果。

补充一下:我忘了说,确保你把这行代码放在正常的管理界面代码之前,放在urls.py文件里。

3

为什么不直接用你的 ModelAdmin 子类来重写相关的方法呢?毕竟它就是一个类嘛。

撰写回答