Django требования к дублирующему виджету - PullRequest
1 голос
/ 31 июля 2011

Если у нас есть несколько файлов, определяющих классы виджетов, и если виджеты имеют, например,

class W1(forms.DateInput):

    class Media:
        css = {'all':('common/css/ui-darkness/jquery-ui-1.8.9.custom.css',),}
        js = ('common/js/jquery-ui-1.8.9.custom.min.js',)

class W2(forms.TextArea):

    class Media:
        js = ('common/js/jquery-ui-1.8.9.custom.min.js',)

и мы используем W2 и W1 на одной странице, это не будет хорошо . Я хотел бы спросить, что является возможным решением для управления медиа-требованиями / классами виджетов, чтобы я мог гарантировать, что при использовании нескольких виджетов дубликаты j или css не будут появляться более одного раза?

Ответы [ 3 ]

3 голосов
/ 31 июля 2011

Этот связанный вопрос касается включения JS или CSS вручную, где его включение дважды будет действительно пустой тратой.Но весь смысл класса form / widget Media состоит именно в том, чтобы справиться именно с этой ситуацией: он дублирует ссылки, поэтому каждый актив запрашивается только один раз.

0 голосов
/ 05 июля 2013

В настоящее время я не использую класс Media, я пишу встроенные js с некоторой самопроверкой

<script>
    if(typeof(jQuery)!="function"){
        document.write('<script src="//code.jquery.com/jquery-1.10.0.min.js"></' + 'script>');
    }
</script>
0 голосов
/ 01 августа 2011

Вы можете создать метакласс, который будет анализировать все виджеты полей на наличие дублированных медиаресурсов в классе перед созданием результирующего типа. Это единовременная стоимость, поэтому любое решение будет работать.

...