JavaScript

В то время как большая часть ядра Django - это Python, приложения admin и gis содержат код JavaScript.

Пожалуйста, следуйте этим стандартам кодирования при написании JavaScript кода для включения в Django.

Кодовый стиль

  • Пожалуйста, соблюдайте стиль отступов, продиктованный в файле .editorconfig. Мы рекомендуем использовать текстовый редактор с поддержкой EditorConfig, чтобы избежать проблем с отступами и пробелами. Большинство файлов JavaScript используют 4 пробела для отступов, но есть и исключения.
  • При именовании переменных используйте camelCase вместо underscore_case. В разных файлах JavaScript иногда используется разный стиль кода. Пожалуйста, старайтесь придерживаться стиля кода каждого файла.
  • Для проверки кода на наличие ошибок и стилевых погрешностей используйте редактор кода ESLint. ESLint будет запущен при выполнении тестов JavaScript. Мы также рекомендуем установить плагин ESLint в вашем текстовом редакторе.
  • По возможности пишите код, который будет работать, даже если структура страницы впоследствии будет изменена с помощью JavaScript. Например, при привязке обработчика клика используйте $('body').on('click', selector, func) вместо $(selector).click(func). Это облегчает проектам расширение стандартного поведения Django с помощью JavaScript.

Исправления JavaScript

Система администрирования Django использует фреймворк jQuery для расширения возможностей интерфейса администратора. При этом особое внимание уделяется производительности JavaScript администратора и минимизации общего размера медиафайлов администратора.

Тесты JavaScript

JavaScript-тесты Django можно запускать в браузере или из командной строки. Тесты расположены в каталоге верхнего уровня js_tests.

Написание тестов

В JavaScript тестах Django используется QUnit. Вот пример тестового модуля:

QUnit.module('magicTricks', {
    beforeEach: function() {
        const $ = django.jQuery;
        $('#qunit-fixture').append('<button class="button"></button>');
    }
});

QUnit.test('removeOnClick removes button on click', function(assert) {
    const $ = django.jQuery;
    removeOnClick('.button');
    assert.equal($('.button').length, 1);
    $('.button').click();
    assert.equal($('.button').length, 0);
});

QUnit.test('copyOnClick adds button on click', function(assert) {
    const $ = django.jQuery;
    copyOnClick('.button');
    assert.equal($('.button').length, 1);
    $('.button').click();
    assert.equal($('.button').length, 2);
});

За информацией о типах assertions supported by QUnit обратитесь к документации QUnit.

Запуск тестов

Тесты JavaScript можно запускать из веб-браузера или из командной строки.

Тестирование через веб-браузер

Чтобы запустить тесты из веб-браузера, откройте js_tests/tests.html в браузере.

Чтобы измерить покрытие кода при выполнении тестов, необходимо просмотреть этот файл по HTTP. Чтобы просмотреть покрытие кода:

Тестирование из командной строки

Для запуска тестов из командной строки необходимо, чтобы у вас был установлен Node.js.

После установки Node.js установите тестовые зависимости JavaScript, выполнив следующие действия из корня вашего Django checkout:

$ npm install
...\> npm install

Затем запустите тесты с помощью:

$ npm test
...\> npm test
Вернуться на верх