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_horizontal/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 加载顺序的主要内容,如果未能解决你的问题,请参考以下文章