当前位置: 首页 > 面试题库 >

Django表单“初始”和“绑定数据”之间的区别?

微生青青
2023-03-14
问题内容

给出这样的例子:

class MyForm(forms.Form): 
    name = forms.CharField()

我试图了解以下两个摘要之间的区别是:

“绑定数据”样式:

my_form = MyForm({'name': request.user.first_name})

“初始数据”样式:

my_form = MyForm(initial={'name': request.user.first_name})

该文档似乎建议“初始不是用于动态初始值”,但是能够将“绑定数据”传递给构造函数可以实现完全相同的功能。我过去曾使用初始数据作为动态值,但我很想使用更直接的“绑定数据”样式,但希望对这两种样式之间的真正区别有一些了解。


问题答案:

这是django文档中有关绑定和未绑定表单的关键部分。

一个Form实例 绑定 到一组数据,或者 未绑定

  • 如果 绑定 到一组数据,则可以验证该数据并将表单显示为HTML,并将数据显示在HTML中。
  • 如果 未绑定 ,则无法进行验证(因为没有要验证的数据!),但仍可以将空白表单呈现为HTML。

您实际上看不到给定的示例表单的区别,因为该表单在“绑定数据”样式中有效。让我们通过添加一个age字段来扩展表单,那么区别将更加明显。

class MyForm(forms.Form):
    name = forms.CharField()
    age = forms.IntegerField()

绑定形式

my_form = MyForm({'name': request.user.first_name})

该表单无效,因为age未指定。在模板中呈现表单时,您将看到该age字段的验证错误。

具有动态初始数据的未绑定表格

my_form = MyForm(initial={'name':request.user.first_name})

此表格是未绑定的。验证不会触发,因此呈现模板时不会显示任何错误。



 类似资料:
  • 问题内容: 我对这些概念有些模糊,如果我完全在AngularJS和ReactJS中构建相同的ToDo应用程序,那么,什么使React ToDo使用单向数据绑定而不是AngularJS的双向数据绑定? 我了解React之类的作品 渲染(数据)—> UI。 这与Angular有何不同? 问题答案: 角度的 当角度设置数据绑定时,存在两个“观察者”(这是一种简化) 输入将以开始,然后更新为1000ms。

  • 本文向大家介绍angular 数据绑定之[]和{{}}的区别,包括了angular 数据绑定之[]和{{}}的区别的使用技巧和注意事项,需要的朋友参考一下 问题描述 在学习angular时,在示例代码写到加载图片时,书中推荐使用单向数据绑定符号[]来绑定图片的路径,然后双花括号的写法是错的。 尝试 首先,按书中推荐的写法: 这里就省略了控制器中定义变量的代码。 然后又按书中说错误的方式进行尝试:

  • 还有其他实现“数据绑定”的模式吗?

  • 本文向大家介绍静态绑定和动态绑定之间的区别,包括了静态绑定和动态绑定之间的区别的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将了解静态绑定和动态绑定之间的区别。 静态绑定 它在编译时解决。 它使用类和字段的类型。 它使用私有,最终和静态方法和变量。 示例:重载 动态绑定 在运行时解决。 虚方法使用此技术。 它使用对象来解决绑定。 示例:方法覆盖。

  • 问题内容: 我正在阅读有关泛型的信息,但我不了解未绑定通配符的需求以及它与原始类型的区别。我读了这个问题,但仍然不清楚。在未绑定通配符的 Java教程页面中,我得到了以下两点,但我不明白第一点: 如果您正在编写可以使用该类中提供的功能实现的方法。 * 当代码在泛型类中使用不依赖于type参数的方法时。例如,或。实际上,之所以经常使用它是因为其中的大多数方法都不依赖。 有人可以用外行语言解释未绑定的

  • 看完问题后,我知道了声明和定义之间的区别。那么它是否意味着定义等于声明加初始化呢?