django重复小部件要求

时间:2011-07-31 17:41:45

标签: django django-widget

如果我们有多个文件定义小部件类,并且小部件有例如

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,而不是good。我想问一下管理小部件的媒体要求/类的可能解决方案是什么,这样我可以确保使用多个小部件不会出现重复的js或css多次出现?

3 个答案:

答案 0 :(得分:3)

这个相关的问题是关于手动包含JS或CSS - 两次包括它确实是一种浪费。但是,表单/窗口小部件Media类的重点是管理这种情况:它会对引用进行重复数据删除,因此每个资产只需要一次。

答案 1 :(得分:0)

您可以创建一个元类,该元类将在创建结果类型之前分析该类上的重复媒体资源的所有字段小部件。这是一次性费用,因此任何解决方案都可行。

答案 2 :(得分:0)

我目前没有使用Media类,我使用一些自检来编写内联js

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