Python Django 1.4管理模型的管理url重写;“树状”;结构

Python Django 1.4管理模型的管理url重写;“树状”;结构,python,django,url,admin,Python,Django,Url,Admin,我到处寻找,没有找到任何答案。 我使用的是Django 1.4,我的问题是: 我试图在contrib admin中实现一个“树状”模型结构 假设我们有模型A和模型B,它们是模型A的子模型, 在A的管理变更列表网格中,当我单击某个项目时,我应该重定向到模型B变更列表视图,并使用A的子项对其进行过滤 在Django的前一个版本中,我只是重写了子模型管理员URL并添加了(?(\d+) 例如:添加url^(+)/已更改为^(?(\d+)/(++)/因此在更改视图中,我检索了父对象并将其用于所有必需的筛选

我到处寻找,没有找到任何答案。 我使用的是Django 1.4,我的问题是: 我试图在contrib admin中实现一个“树状”模型结构

假设我们有模型A和模型B,它们是模型A的子模型, 在A的管理变更列表网格中,当我单击某个项目时,我应该重定向到模型B变更列表视图,并使用A的子项对其进行过滤

在Django的前一个版本中,我只是重写了子模型管理员URL并添加了(?(\d+)

例如:添加url^(+)/已更改为^(?(\d+)/(++)/因此在更改视图中,我检索了父对象并将其用于所有必需的筛选,还将其发送到上下文中以显示在面包屑中

它之所以有效,是因为在所有管理模板中,我们都有面包屑、添加、删除、历史记录等的相对链接,因此,例如,确认删除页面中的取消按钮有href='../../'并单击它会将我从app/model/parent_id/obj_id/delete带到app/model/parent_id

由于1.4中的更改,其中所有模板链接都是使用反向url生成的,我显然在NoReverseMatch中遇到了错误。一个临时的修复方法是在会话中传递父id,这样我就可以在所有的子管理员页面中使用它(出于许多原因,我认为这不是一个好方法)

总之,我正试图以一种不会干扰当前模板的方式重写管理员url,这样我就可以在url中发送父id(在查询字符串中发送也不是一个选项)
有没有人做过类似的事情?

根据经验,只有对Django的管理员进行更直接、更强大的定制才是一个好主意。如果你做了你所描述的事情,你就有与新版本不兼容的风险(正如你已经经历过的)。你所要求的不是真正可能的,也不是以可靠的方式可行的-你将不得不monkeypatch django的url dispatcher(导致“父部分”)url的名称是动态的,但管理员将安装在静态路径上)。