Django Admin:链接到添加和修改下方的ForeignKey的Admin-Interface

时间:2018-10-08 12:11:23

标签: django django-admin

我有一个名为Foo的Django模型

IT具有“远程”的ForeignKey。

在django管理员中显示如下:

enter image description here

下拉菜单下面有两个图标:“修改”和“添加”。

如果我可以拥有第三个图标,那就太酷了:链接到给定Remote实例的管理页面。

这怎么办?

某种重用性会很好,因为我希望此功能可用于多个管理页面。

2 个答案:

答案 0 :(得分:4)

我还没有亲自测试过,但是要添加更多图标,您应该可以通过覆盖related_widget_wrapper的小部件的管理模板来实现。

请参阅以下两个文件:

django/contrib/admin/templates/admin/related_widget_wrapper.html django/contrib/admin/templates/admin/widgets/related_widget_wrapper.html

具体来说,您希望它生成更改网址:{{ change_related_template_url }}而没有{{ url_params }}

覆盖管理模板:

https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#admin-overriding-templates

答案 1 :(得分:1)

有一个开始代码可以帮助您

1-首先,您需要使用javascript来处理动态元素,因此可以使用如下代码:

$('a.related-widget-wrapper-link add-related, a#add_id_client').after('<a href="#" class="float-right"> <img src="/static/application/img/avatar.jpg"> </a>');

注意:a#add_client,更改为您当前的型号名称

Dynamic Element JS

2-在javascript中将网址设置为<a href=""></a>

3-最后,使用class Meta:或覆盖base.html将.js代码链接到模板。例如:

base.html 最终文件

    {% block footer %}
    {% endblock %}

</div>
<!-- END Container -->
<script type="text/javascript" src="{% static "application/js/my_custom_javascript.js"%}"></script>

</body>
</html>