您的位置:首页 > 编程语言 > Go语言

dajngo.forms.widget-Media

2015-10-29 10:52 495 查看
Media负责对js和css的引用。

属性self._js = [], self._css = {} 分别负责js和css的文件引用。

方法add_js,add_css负责添加文件引用。

方法render_js, render_css负责输出引用js和css的html语句。

通过对add_js(self, data)方法的分析, 可以看出参数data的格式是['js_path_1', 'js_path_2']。self._js的格式也是由js文件名组成的列表。

通过对add_css(self, data)方法的分析, 可以看参数data的格式为

{'medium_type_1': ['type_1_path_1', 'type_1_path_2',....],

'medium_type_2': ['type_2_path_1', ...]

....}。

self._css的格式也是由medium:paths组成的字典。paths是由path组成的列表。

通过调用方法的形式,

?
可以看到都是由

?
来命名的。

我们可以看到render()和render_css()都使用了chain方法。

首先来看render_css(),

?
看嵌套列表表达式

?
这里返回的是一个嵌套的列表,格式为

?
然后使用chain(*lists),使用*传参,是chain比较常用的技巧。

render()方法的chain调用,也是一样的

最后说下Media使用的流程。

初始化

?
优先使用media参数,其次使用kwargs参数。

还可以看出这些参数只有这些属性有用

?
并且这些格式必须符合add_js( )和add_css( )的参数data格式。

使用add_js( )和add_css( )添加文件路径。

使用render_js( )和 render_css( ), render( )输出html语句。

注意 absolute_path(self, path, prefix=None)方法,

对path有特殊的要求。

获取js和css

?
使得我们可以通过字典的方式获得。它返回的是一个新的meida实例。

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: