(function ($) { 'use strict'; var init = function ($element, options) { var settings = $.extend({ ajax: { data: function (params) { return { term: params.term, page: params.page }; } } }, options); $element.select2(settings); }; $.fn.djangoAdminSelect2 = function (options) { var settings = $.extend({}, options); $.each(this, function (i, element) { var $element = $(element); init($element, settings); }); return this; }; $(function () { // Initialize all autocomplete widgets except the one in the template // form used when a new formset is added. $('.admin-autocomplete').not('[name*=__prefix__]').djangoAdminSelect2(); }); $(document).on('formset:added', (function () { return function (event, $newFormset) { return $newFormset.find('.admin-autocomplete').djangoAdminSelect2(); }; })(this)); }(django.jQuery));