Python 关于Django';s小部件设计原则
这是我很久以前就提过的一个问题,因为我不明白为什么这个决定会朝那个方向发展 当我们呈现一个小部件时(例如,“使用表单的原因”),它的呈现函数有一个Python 关于Django';s小部件设计原则,python,django,widget,Python,Django,Widget,这是我很久以前就提过的一个问题,因为我不明白为什么这个决定会朝那个方向发展 当我们呈现一个小部件时(例如,“使用表单的原因”),它的呈现函数有一个名称参数。如果HTML标记名是attr,为什么不能指定为传递给该函数的attrsdict的一部分?仅当您未指定属性名称时,才使用名称应该更有意义 为了理解,如果我设置一个attrs{“name”:“无人知晓[]”},当我呈现小部件时,它的名称应该是“无人知晓[]”,而不是arg传递的名称。这样,我就可以在服务器端(例如)拥有一个可以直接解析为列表(ge
名称
参数。如果HTML标记名是attr,为什么不能指定为传递给该函数的attrs
dict的一部分?仅当您未指定属性名称时,才使用名称
应该更有意义
为了理解,如果我设置一个attrs
{“name”:“无人知晓[]”}
,当我呈现小部件时,它的名称应该是“无人知晓[]”
,而不是arg传递的名称。这样,我就可以在服务器端(例如)拥有一个可以直接解析为列表(getlist(…)
)的HTML标记。该字段负责接受输入并对其进行验证;因此,字段必须确定name属性,否则它将无法知道在数据中使用什么值
但是,您永远不需要通过调用小部件的
render
方法直接呈现小部件。同样,这是字段的工作。好的,我的getlist(…)
示例无效,因为Django解析它时不需要名称中的[]
。但是想法是一样的,能够覆盖名称。你说“手动”呈现小部件是什么意思?调用widget.render(…)
,我会编辑,不是那么清晰,不是直接呈现小部件(我需要它的强烈理由)。但你的回答澄清了我的想法。