【问题标题】:django admin - How to add javascript at the end of a filedjango admin - 如何在文件末尾添加 javascript
【发布时间】:2020-01-07 08:37:07
【问题描述】:

我正在尝试将自定义 javascript 文件添加到 Django 管理模型页面。我在 ModelAdmin 中使用了一个 Media 类,但文件已加载到 head 部分。我需要在文件末尾。有谁知道怎么做?

谢谢大家!

class Media:
        js = (
            'js/jquery.mask.min.js',
            'js/mask.js',       
        )

这些脚本的目的是使掩码适用于表单中的某些字段。

【问题讨论】:

    标签: jquery django


    【解决方案1】:

    您可以扩展管理部分的模板文件并将它们直接放在那里。见https://docs.djangoproject.com/en/2.2/ref/contrib/admin/#overriding-admin-templates

    我已经在自己的一些项目中做到了。例如,在您的模板文件夹中,您可以拥有:

    /templates/admin/base_site.html

    在该文件中,您可以进行任何您想要的更改(与常规 Django 模板相同)。在你的情况下,它可能是这样的:

    {% extends 'admin/base_site.html' %}
    {% load static %}  
    {% block footer %}
    <div id="footer"></div>
    <script src="whatever/source/jquery.js" />
    <script src="whatever/source/mask.js" />
    {% endblock %}
    

    希望这会有所帮助!

    【讨论】:

    • 非常感谢!你的提示与@mrash 的提示达成了交易。
    • 很高兴听到这个消息!祝你好运
    【解决方案2】:

    在 javascript 代码中,您应该强制代码在页面加载后运行。例如在 jQuery 中:

    $(function(){
        /* this code runs after page load */
    });
    

    【讨论】:

    • 非常感谢!你的提示与@Sam 的提示达成了交易。
    【解决方案3】:

    使用window.addEventListener:

    window.addEventListener('load', function() {
        (function ($) {
            // Code
        })(django.jQuery);
    });
    

    另一种方式:

    window.onload = function () {
      if (typeof (django) !== 'undefined' && typeof (django.jQuery) !== 'undefined') {
        (function ($) {
          // Code
        }(django.jQuery));
      }
    };
    

    【讨论】:

      【解决方案4】:

      根据@sam-creamer 的回答,我更改了脚本标签:

      {% extends 'admin/base_site.html' %}
      {% load static %}  
      {% block footer %}
      <script src="{%static '/whatever/source/jquery.js' %}"></script>
      <script src="{%static '/whatever/source/mask.js' %}"></script>
      {% endblock %}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多