【问题标题】:How to prevent Satchmo forms from displaying asterisk after required fields?如何防止 Satchmo 表单在必填字段后显示星号?
【发布时间】:2010-11-19 01:36:05
【问题描述】:

我正在自定义我的 Satchmo 商店表单,并且在任何必填字段之前都有一个图标。问题是,Satchmo 似乎想在必填字段之后呈现一个文本星号。我正在使用field.label 来获取这个标签,我应该使用其他东西吗?

编辑:我所有的表单模板都是硬编码的。我有一个包含标签,它接受一个字段并将其包装在我开发的标准字段模板中。我的模板使用{{ field.label }} 来显示字段的友好名称。似乎标签本身的末尾有一个星号。

【问题讨论】:

标签: python django forms field satchmo


【解决方案1】:

如果您执行以下操作会发生什么?

  1. 将 Satchmo 的部分或全部表单模板复制到新位置并修改它们以删除星号
  2. 安排它,以便在 Satchmo 的副本之前看到这些模板的副本(通过适当地配置模板加载器设置,例如将带有复制模板的应用放置在 settings.INSTALLED_APPS 中的 Satchmo 上方)

更新:我无法使用普通 Satchmo 0.8.1 安装重现您的结果。你能提供更多信息吗?这是我所做的:首先,我修改了templates/contact/update_form.html,其中包含硬编码的星号。我可以通过更改模板轻松删除它们;他们从 UI 中消失了。取而代之的是,我将它们保留在其中,但在表格部分中的每个字段之后的括号中立即添加了{{ form.field.label }}。结果如下:

这里的标签确实包含一个星号——正如我之前提到的,这是因为ContactInfoForm 在其__init__ 方法中硬编码了这种行为。您必须撤消此行为,可能通过使用从字段标签中删除尾随 *s 的派生类。

但是,我没有发现任何*s 出现在其他必填字段中。例如,当我尝试提交所需信息时,这是结帐表单的屏幕截图:

如您所见,信用卡号和 CCV 是必填字段,但在提示符处不带星号。标签也没有星号。因此,您遇到的问题似乎与您的自定义有关,但如果没有更多信息,很难提供更多帮助。

【讨论】:

  • 我的表格已经是这样了。它们都被复制到我的项目的 /templates/ 文件夹中,因此首先阅读它们。我的表单模板都是自定义/硬编码的。
  • 版本 0.8.1 以及几乎任何带有必填字段的表单。
  • 也许这就是我感到困惑的原因。有些表格有,有些没有。无论如何,我的“行字段”包含标签有一个内置的覆盖,让我可以随意命名该字段,所以我使用它。我的问题是理解原因。
猜你喜欢
  • 1970-01-01
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
  • 2019-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-21
相关资源
最近更新 更多