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

如何在模板中显示Django表单字段的值?

牟辰龙
2023-03-14
问题内容

我有一个带有电子邮件属性的表单。

当使用{{ form.email }}某些验证错误时,Django仍会在输入标签的value属性中呈现先前的值:

<input type="text" id="id_email" maxlength="75" class="required"
       value="some@email.com" name="email">

我想自己渲染输入标签(在发生错误的情况下添加一些JavaScript代码和错误类)。例如,这是我的模板,而不是{{ form.email }}:

<input type="text" autocomplete="on" id="id_email" name="email"
       class="email {% if form.email.errors %} error {% endif %}">

但是,这不会some@email.com用户显示错误的值(在此示例中)。

如何在模板中获取字段的值?


问题答案:

这是一项功能请求,已在Django 1.3中修复。

错误是这样的:https://code.djangoproject.com/ticket/10427

基本上,如果要在1.3之后运行,可以在Django模板中执行以下操作:

{{ form.field.value|default_if_none:"" }}

或在Jinja2中:

{{ form.field.value()|default("") }}

注意,这field.value()是一个方法,但是在Django模板()中省略了,而在Jinja2中,方法调用是显式的。

如果你想知道你正在运行的Django版本,它将在执行runserver命令时告诉你。
如果你使用的是1.3之前的版本,则可以使用上述错误中发布的修复程序:https : //code.djangoproject.com/ticket/10427#comment:24



 类似资料:
  • 问题内容: 我的Django项目中有这些模型: 如何在模板中显示该地方的区域名称?目前我有: 这使: 而且{{ place.area}}只是空白。有人可以帮忙吗? 问题答案:

  • 问题: 怎样在模板中个别显示表单字段? 解决: 你可以使用’render()’方法在你的模板中显示部分的表单字段。 假设你想创建一个名字/姓氏表单。很简单,只有两个字段,不需要验证,只是为了测试目的。 from web import form simple_form = form.Form( form.Textbox('name', description='Name'), for

  • 问题内容: 我的字典看起来像这样(字典中的字典): 现在,我只是想在模板上显示信息,但是我很挣扎。我的模板代码如下: 它只是在模板上显示“ 0”? 我也尝试过: 这甚至不显示结果。 我想也许我需要更深入地迭代一个级别,所以尝试了一下: 但这不会显示任何内容。 我究竟做错了什么? 问题答案: 可以说你的数据是- 你可以使用该data.items()方法来获取字典元素。注意,在django模板中,我们

  • 问题内容: 在我的模型中,我想要一个包含三联列表的字段。例如。是否存在可以将这些数据存储在数据库中的字段? 问题答案: 你可以使用JSON将其转换为字符串并将其存储为字符串。 例如, 你可以在类中添加方法以自动为你转换。

  • 问题内容: 即使在模型中将字段标记为,我仍希望在管理页面上显示它。目前,它完全隐藏了该领域。如何实现? 问题答案: 使用只读字段。像这样(对于django> = 1.2):

  • 问题内容: 这可能无关紧要,只是想问一下, 如果一个对象从视图传递到模板,并且在模板中我将能够查询许多字段 型号代码: 观看次数: 在模板中可以解码多对多字段,因为我们正在传递对象 谢谢.. 问题答案: 通常,您可以通过django模板系统中的路径来跟踪任何不带参数的属性或方法调用。 对于上面的视图代码,类似 应该做您期望的。 (我无法完全从代码示例中找出具体细节,但希望这会阐明您可以从模板中学到