Django admin 自定义 javascript 加载顺序

Posted

技术标签:

【中文标题】Django admin 自定义 javascript 加载顺序【英文标题】:Django admin custom javascript load order 【发布时间】:2010-11-12 22:57:14 【问题描述】:

我正在使用 jquery 在 django admin 的某些字段中添加一些功能,包括我的代码,方法如下:

class SomeAdmin(admin.ModelAdmin):
    class Media:
        js = (
                "/static/js/lib/jquery-1.3.2.min.js",
                "/static/js/admin/app/model.js"
            )
            ...
            ..
            .

管理员似乎包含了所有正常的 js 文件:

<script type="text/javascript" src="/media/js/core.js"></script>
<script type="text/javascript" src="/media/js/admin/RelatedObjectLookups.js"></script>
<script type="text/javascript" src="/media/js/getElementsBySelector.js"></script>
<script type="text/javascript" src="/media/js/actions.js"></script>
<script type="text/javascript" src="/media/js/urlify.js"></script>

然后是您指定的任何自定义字段,如果您指定了任何 filter_horizo​​ntal/vertical 字段,则 然后,以下

<script src="/media/js/SelectBox.js" type="text/javascript"/>
<script src="/media/js/SelectFilter2.js" type="text/javascript"/>

这有点烦人,因为我想修改生成的一对选择框。

是否可以在 django admin 中更改标签的顺序?

如果做不到这一点,jquery 中是否有可能在 everything 之后运行一些代码,否则,我通常使用 $(document).ready(....),在此之后是否触发了任何事件?

额外信息

快速更新,以防有人想要使用 alex vasi 建议的路线,您可以使用以下文件扩展管理模板:

% extends "admin/change_form.html" %

% block extrahead % block.super 
    <script type="text/javascript" src="/static/js/admin/app/model/somefile.js"></script>
% endblock %

我将它放在 /path/to/project/templates/admin/app/model/change_form.html 中,然后就完成了。

【问题讨论】:

【参考方案1】:

错误的解决方案:override admin change_list 用于此模型的模板并将您的脚本标签放在模板中。

【讨论】:

有效,但必须有更好的解决方案,不是吗? (+1)

以上是关于Django admin 自定义 javascript 加载顺序的主要内容,如果未能解决你的问题,请参考以下文章

django-19.admin后台自定义显示

如何在 Django-admin 中添加自定义搜索框?

Django admin listview 自定义列名

django admin 自定义模板页面未找到错误

django-admin.py 找不到自定义设置文件

Django-Admin:集成自定义表单