JQuery не загружается на домашней странице администратора Django / панели инструментов, страницах входа и выхода - PullRequest
0 голосов
/ 12 февраля 2019

Мне нужно загрузить js файл через все админ-страницы django.Поэтому я скопировал файл base.html, расположенный в django/contrib/admin/templates/admin/, и добавил его в папку с шаблонами в папке templates/admin/base.html.Добавлен файл js в app_static/admin/js/ (расположение к моим статическим файлам).

Затем я включил теги <script> в base.html под тегами {% block javascripts %}.Когда я открываю страницы change_list и change_form, js срабатывает правильно.Он не срабатывает на домашней странице / панели инструментов, страницах входа и выхода.Возвращает ошибку с указанием Uncaught ReferenceError: django is not defined.Ошибка обычно выдается, когда jQuery не был инициализирован.

session_expiry.js

(function($){

    console.log('js has been called');

})(django.jQuery);

base.html

{% load i18n static %}<!DOCTYPE html>
{% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %}
<html lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>

    <head>
        <title>{% block title %}{% endblock %}</title>
        <link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}">
        {% block extrastyle %}{% endblock %}
        {% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% static "admin/css/rtl.css" %}{% endblock %}">{% endif %}
        {% block extrahead %}{% endblock %}
        {% block responsive %}
        <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0">
        <link rel="stylesheet" type="text/css" href="{% static "admin/css/responsive.css" %}">
        {% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% static "admin/css/responsive_rtl.css" %}">{% endif %}
        {% endblock %}

        {% block javascripts %}
            <script type="text/javascript" src="{% static "admin/js/session_expiry.js" %}"></script>
        {% endblock %}

        {% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE">{% endblock %}
    </head>
    {% load i18n %}

    <body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}" data-admin-utc-offset="{% now "Z" %}">
        <!-- Container -->
        <div id="container">
            {% if not is_popup %}
            <!-- Header -->
            <div id="header">
                <div id="branding">{% block branding %}{% endblock %}</div>
                {% block usertools %}
                    {% if has_permission %}
                        <div id="user-tools">
                            {% block welcome-msg %}
                                {% trans 'Welcome,' %}
                                <strong>{% firstof user.get_short_name user.get_username %}</strong>.
                            {% endblock %}
                            {% block userlinks %}
                                {% if site_url %}
                                    <a href="{{ site_url }}">{% trans 'View site' %}</a> /
                                {% endif %}
                                {% if user.is_active and user.is_staff %}
                                    {% url 'django-admindocs-docroot' as docsroot %}
                                    {% if docsroot %}
                                        <a href="{{ docsroot }}">{% trans 'Documentation' %}</a> /
                                    {% endif %}
                                {% endif %}
                                {% if user.has_usable_password %}
                                    <a href="{% url 'admin:password_change' %}">{% trans 'Change password' %}</a> /
                                {% endif %}
                                <a href="{% url 'admin:logout' %}">{% trans 'Log out' %}</a>
                            {% endblock %}
                        </div>
                    {% endif %}
                {% endblock %}
                {% block nav-global %}{% endblock %}
            </div>
            <!-- END Header -->

            {% block breadcrumbs %}
                <div class="breadcrumbs">
                <a href="{% url 'admin:index' %}">{% trans 'Home' %}</a>
                {% if title %} &rsaquo; {{ title }}{% endif %}
                </div>
            {% endblock %}

            {% endif %}

            {% block messages %}
                {% if messages %}
                    <ul class="messagelist">{% for message in messages %}
                    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message|capfirst }}</li>
                    {% endfor %}</ul>
                {% endif %}
            {% endblock messages %}

            <!-- Content -->
            <div id="content" class="{% block coltype %}colM{% endblock %}">
            {% block pretitle %}{% endblock %}
            {% block content_title %}{% if title %}<h1>{{ title }}</h1>{% endif %}{% endblock %}
            {% block content %}
            {% block object-tools %}{% endblock %}
            {{ content }}
            {% endblock %}
            {% block sidebar %}{% endblock %}
            <br class="clear">
            </div>
            <!-- END Content -->

            {% block footer %}<div id="footer"></div>{% endblock %}

        </div>
        <!-- END Container -->

    </body>
</html>

Может ли кто-нибудь указать, что мне не хватает.Я использую Django 2.1.2.

1 Ответ

0 голосов
/ 12 февраля 2019

django.jQuery определяется в django/contrib/admin/static/admin/js/jquery.init.js и располагается в django/contrib/admin/static/admin/js/jquery.js.Вам нужно загрузить эти js-файлы в ваш шаблон напрямую

<script type="text/javascript" src="/static/admin/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...