/ / django duplicate widget - django, django-widget

django duplicate widget - django, django-widget

Se tivermos vários arquivos definindo classes de widgets e se os widgets tiverem, por exemplo,

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",)

e usamos W2 e W1 na mesma página, isso não seria Boa. Eu gostaria de perguntar qual é a solução possívelpara gerenciar os widgets "requisitos de mídia / classes de modo que eu possa garantir o uso de vários widgets não teria js ou css duplicados aparecendo mais de uma vez?

Respostas:

3 para resposta № 1

Essa pergunta ligada é sobre a inclusão de JS ou CSS manualmente - onde incluí-lo duas vezes seria realmente um desperdício. Mas, todo o ponto do formulário / widget Media A classe é gerenciar exatamente essa situação: desduplica as referências, portanto, cada ativo é solicitado apenas uma vez.


0 para resposta № 2

Você pode criar uma metaclasse que analisará todos os widgets de campo para recursos de mídia duplicados na classe antes que um tipo resultante seja criado. Este é um custo único, portanto, qualquer solução funcionará.


0 para resposta № 3

Eu atualmente não estou usando a classe de mídia, eu escrevo inline js com alguns selfcheck

<script>
if(typeof(jQuery)!="function"){
document.write("<script src="//code.jquery.com/jquery-1.10.0.min.js"></" + "script>");
}
</script>