您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Django视图中将表单字段作为属性访问

在Django视图中将表单字段作为属性访问

使用字段定义字段的方式django.forms只是一种方便的声明性语法。它并不能真正代表最终Form类或其实例在属性方面的外观。

表单具有一个元类(在不深入的情况下,元类是使用class关键字声明一个类,而__init__方法是使用括号创建一个类的实例的方法- 一种用于自定义正在创建的对象的钩子,在这种情况下元类的“class!”是!),它在定义时从表单类中提取字段并将其添加base_fields字典中。实例化表单时,会将其base_fields深层复制到fields实例上的属性

令人困惑的一点是,您.用来访问在模板中显示的字段- 实际发生的事情是Django的模板引擎首先尝试使用字典式[]访问来解析属性查找,并且基本表单类定义__getitem__一种利用该方法方法为此,从表单实例的fieldsdict中查找适当的字段,然后用BoundField进行包装,包装器知道如何使用该字段和表单中的数据来显示该字段。

Go 2022/1/1 18:39:38 有335人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶