django-autocomplete-light Удалить медиа (JS, CSS) - PullRequest
0 голосов
/ 20 сентября 2019

Как я могу удалить все носители (файлы JS & CSS), добавленные django-autocomplete-light, из формы?

Я пытался переопределить self.media в форме с помощью None илидаже list.Я также пытался создать Media Class внутри своей формы, но это тоже не помогло.

Единственное, что до сих пор работало, - это удаление носителя непосредственно из исходного кода библиотеки, но этоне является подходящим решением.

Я знаю, что нужен JS & CSS.Но мои шаблоны уже предоставляют все необходимые файлы.

Форма

class LogEntryFilterForm(forms.Form):
    user = ModelChoiceField(
            queryset=PimUser.objects.all(),
            widget=autocomplete.ModelSelect2(
                    url='accounts_autocomplete',
                    attrs={
                        'theme':                     'bootstrap4',
                        'data-minimum-input-length': 2,
                    }
            )
    )

    def __init__(self, *args, **kwargs):
        request = CrequestMiddleware.get_request()

        self.helper = FormHelper()
        self.helper.form_method = 'get'
        self.helper.form_action = '.'
        self.helper.form_class = 'form-filter-vertical form-bordered'

        self.helper.layout = self.__get_layout()
        super().__init__(*args, **kwargs)

        self.fields['ip'].widget.attrs['placeholder'] = request.META.get('REMOTE_ADDR')

Медиа выход

<link href="/static/vendor/select2/dist/css/select2.css" type="text/css" media="screen" rel="stylesheet">
<link href="/static/admin/css/autocomplete.css" type="text/css" media="screen" rel="stylesheet">
<link href="/static/autocomplete_light/select2.css" type="text/css" media="screen" rel="stylesheet">
<script type="text/javascript" src="/static/admin/js/vendor/jquery/jquery.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/jquery.init.js"></script>
<script type="text/javascript" src="/static/vendor/select2/dist/js/select2.full.js"></script>
<script type="text/javascript" src="/static/vendor/select2/dist/js/i18n/de.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/autocomplete.init.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/forward.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/select2.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/jquery.post-setup.js"></script>

1 Ответ

0 голосов
/ 20 сентября 2019

Я не уверен, что это сработает, но вы можете попробовать указать носитель в определении формы, предоставив пустые файлы, если он не займет пустой список

class Media:
    css = {
        'all': ('pretty.css',)
    }
    js = ('animations.js', 'actions.js')
...