在django admin中显示对象的完整更改表单的链接

时间:2011-02-17 22:53:26

标签: django django-models django-admin

由于尚不支持嵌套的内联,我想知道如何显示相关对象的链接作为替代。前几天我发现了一个问题链接,但我似乎无法再找到它。

以下是我正在做的事情:
我有一个包含姓名,地址等的经理模型。

我有一个内联属性模型,与经理模型有关。

我希望管理器模型能够在更改表单中显示与其相关的每个属性的链接。

这是可以做到的吗?

1 个答案:

答案 0 :(得分:3)

当然,您可以覆盖您的更改视图。 http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.change_view

从真实的管理模板目录中复制模板并将其放在您喜欢的任何位置(因为您可以使用change_form_template指向它,并添加一些额外的内容来显示。

我非常喜欢这样做。

class MyModelAdmin(admin.ModelAdmin):
    change_form_template = 'myapp/new_change_form.html'

    def change_view(self, request, object_id, extra_context=None):
        properties = Manager.objects.get(id=object_id).property_set.all()
        extra_context = { 'properties':properties }
        super(MyModelAdmin, self).change_view(request, object_id, extra_context)

在管理模板中找一个地方,添加一些自己的HTML。

<ul>
{% for property in properties %}
    <li>
        <a href="{% url admin:myapp_manager_change property.id %}">Edit {{ property }}</a>
    </li>
{% endfor %}
</ul>