有没有办法在Django中为内联管理表单分别设置页面?

时间:2010-05-11 21:19:09

标签: python django django-admin

假设我有一个模型A.然后,我有几个模型B,C,D,E等每个都有一个foreignKey模型A.我知道我可以设置B,​​C,D等作为模型的内联这样当我创建模型A时,它将显示用于为每个子模型添加多个项目的模板集,但我认为这将使一个相当混乱和非常大的页面。

有没有办法以某种方式,而不是让所有这些formset内联在同一页面上,让每个formset在一个单独的页面上?换句话说,会有从模型A到创建/编辑关联模型B,创建/编辑关联模型C等的链接吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

我正在寻找一种完全相同的方法。看起来答案可能是“代理模型”。它建议作为Stack Overflow查询的答案:

  

django admin: separate read-only view and change view

...此查询询问同一模型的多个管理员列表:

  

Multiple ModelAdmins/views for same model in Django admin

此处有关代理模型的文档:

  

Django | Models | Django documentation#Proxy models

我自己是Django的新手,所以一旦我开始工作,我会发布更完整的回复。

答案 1 :(得分:0)

简单的答案是创建一个文件:

${TEMPLATE_DIR}/admin/app/modelA/change_form.html

在更改表单中,您可以执行以下操作:

{% extends "admin/change_form.html" %}
{% block after_related_objects %}
<ul>
   <li><a href="/admin/app/modelB/{{ original.modelB.id }}/">Edit modelB</a></li>
</ul>
{% endblock %}

它有点原始,但它做你想要的。列表和复杂的聚合比较棘手,您需要测试原始的存在,以确保不会生成模板错误。