是否可以在Django小部件中执行dojo.require()?

时间:2011-08-05 21:42:52

标签: django dojo

Django允许用户指定自定义窗口小部件媒体......

class CalendarWidget(forms.TextInput):
    class Media:
        js = ('animations.js', 'actions.js')

正如https://docs.djangoproject.com/en/1.3/topics/forms/media/#media-as-a-static-definition上的示例所示,生成的媒体看起来像......

<script type="text/javascript" src="http://media.example.com/animations.js"></script>
<script type="text/javascript" src="http://media.example.com/actions.js"></script>

问题是我正在使用Dojo,我的小部件的要求是:

<script type="text/javascript">
   dojo.require("dijit.form.TextBox");    
</script>

如何通过Django表单字段小部件生成此脚本标记?现在似乎不可能......这意味着我不能使用Django的甜蜜表单设置或者我需要切换我的Javascript框架。请帮帮我吧!

1 个答案:

答案 0 :(得分:0)

有两种方法:要么只创建一个只包含要求的.js文件,然后将其添加到js列表:js = [ …, 'dojo_require_TextBox.js' ],要么在小部件前加上{{1}通过覆盖窗口小部件中的渲染来标记:

<script />