Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 关于Django';s小部件设计原则_Python_Django_Widget - Fatal编程技术网

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(…)
,我会编辑,不是那么清晰,不是直接呈现小部件(我需要它的强烈理由)。但你的回答澄清了我的想法。