python - 如何将纯文本信息添加到 Django 表单集中的表单?

标签 python django django-forms

我想在每个表单中显示来自数据库查询的标题和描述,但我不希望它在字符字段中,我希望它是 html 格式的文本。

示例模板代码:

{% for form, data in zipped_data %}
   <div class="row">
      <div class="first_col">
         <span class="title">{{ data.0 }}</span>
         <div class="desc">
            {{ data.1|default:"None" }}
         </div>
      </div>
      {% for field in form %}
         <div class="fieldWrapper" style="float: left; ">
            {{ field.errors }}
            {{ field }}
         </div>
      {% endfor %}
{% endfor %}

这是最惯用的方法吗?或者,有没有一种方法可以将不会显示在文本区域内的文本或文本输入添加到我的模型中:

class ReportForm(forms.Form):
   comment = forms.CharField()

?

最佳答案

您可以覆盖表单上的构造函数,并将您的标题/描述作为实例级 成员变量,而不是将表单与附加数据压缩在一起。这更面向对象,学习如何执行此操作将帮助您解决其他问题,例如动态选择字段。

class MyForm (forms.Form):
    def __init__ (self, title, desc, *args, **kwargs):
        self.title = title
        self.desc = desc
        super (MyForm, self).__init__ (*args, **kwargs) # call base class

然后在你的 View 代码中:

form = MyForm ('Title A', 'Description A')

如果您需要这些值来自数据库,请相应地进行调整。然后在您的模板中,您可以像访问其他任何内容一样访问实例变量,例如:

   <h1>{{ form.title }}</h1>
   <p>{{ form.desc }}</p>

从您表述问题的方式来看,我认为您可能对 Django 使用 Python 类属性 提供声明式 API 与实例级 的方式有些混淆您应用于类的各个实例的属性,在本例中是您的表单对象。

关于python - 如何将纯文本信息添加到 Django 表单集中的表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/570522/

相关文章:

具有同一模型的多个内联的 Django 管理

django - 如何在django中将文件路径转换为url

python - Keras 模型未能减少损失

python - 带有 OHE 的 ColumnTransformer 和 Pipeline - 执行 ct 后 OHE 编码字段是保留还是删除?

python - Django 路由问题

python - Django 相当于 mako 的可调用 block

django - 如何在 Django REST Framework 中更改字段名称

python - 导入错误: No module named enum

python - 对数据框的一列进行分箱后,如何创建一个新的数据框来计算每个箱中的元素数量?

Django - 日期时间小工具格式