我全身都搜索过,但没有找到任何答案。 我正在使用Django 1.4,我的问题是: 我正在尝试在contrib admin中实现一个“树状”模型结构。
假设我们有模型A和模型B是模型A的孩子, 在管理员的change_list网格中,当我点击一个项目时,我应该重定向到模型B的更改列表视图,并使用A的子项对其进行过滤。
在以前的Django版本中,我只重写了子模型管理员网址并添加了(?(\ d +))。
Ex:添加url ^(。+)/被更改为^(?< parent_id>(\ d +))/(。+)/所以在更改视图中我检索了父对象并将其用于所有必需的过滤并在上下文中发送它以在面包屑中显示。
它有效,因为在所有管理模板中我们都有面包屑,添加,删除,历史记录......的相对链接,所以例如确认删除页面中的取消按钮有href ='.. / .. /'和点击它会让我从app / model / parent_id / obj_id / delete到app / model / parent_id
由于1.4中的所有模板链接都是使用反向网址生成的,所以我很明显会因为NoReverseMatch而出错。临时修复是在会话中传递父ID,以便我可以在所有子管理页面中使用它(我不认为这是一个很好的方法,因为很多原因)。
底线我试图以一种不会干扰当前模板的方式重写管理网址,以便我可以在网址中发送父ID(在查询字符串中发送它也不是一个选项) 那里有人做过类似的事吗?