Django 表单字段到 HTML

Posted

技术标签:

【中文标题】Django 表单字段到 HTML【英文标题】:Django form fields to HTML 【发布时间】:2022-01-19 08:32:31 【问题描述】:

我在 for 循环中创建字段并将它们存储在 Django 表单的列表中。 尝试将字段放入 html 文件时,它似乎正在打印对象。

类似这样的:

我的 HTML 如下所示:

% for i in form.list %
    i
% endfor %

这就是我创建列表的方式:

l1 = [] #List that contains names 
l2 = [] #List that contains other names 
result =  
for i in l1: 
   for j in l2: 
      v_name = i + '_' + j 
          result[v_name] = forms.IntegerField()

如何将该字符串转换为实际输入?

【问题讨论】:

什么是form.list? 这是一个python列表,包含我创建的所有整数字段。 您已经可以访问您的字段,无需创建新列表,在上下文中传递表单实例并在模板中访问它,然后处理显示 您能展示一下您是如何创建字段的吗?可以在self.fields字典中添加字段来动态添加字段 @Alfonso 请将其添加到问题中 【参考方案1】:

您可以将字段添加到Form.__init__ 中的self.fields 字典,以动态向表单添加字段。

class MyForm(forms.Form):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        for i in l1: 
            for j in l2: 
                v_name = i + '_' + j 
                self.fields[v_name] = forms.IntegerField()

这可以像常规形式一样使用,也可以迭代

 form 

% for field in form %
     field 
% endfor %

【讨论】:

以上是关于Django 表单字段到 HTML的主要内容,如果未能解决你的问题,请参考以下文章

django 将占位符文本添加到表单字段

需要触发接受Django表单的文本字段值作为参数

Django:将字段添加到模型表单集

如何在 HTML 中填充 Django 表单字段?

python16_day18Django_Form表单分页

Django之Form表单