加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何在视图中渲染django表单?

发布时间:2020-12-20 12:25:10 所属栏目:Python 来源:网络整理
导读:for field in FIELDS: row = [] row.append("tr") row.append("td" + str(myform.fields.get(field)) + "/td") row.append("/tr") custom_fields.append("".join(row)) 当我将custom_fields变量提供给模板时,我得到的只是: trtddjango.forms.widgets.Checkb
for field in FIELDS:
    row = []
    row.append("<tr>")
    row.append("<td>" + str(myform.fields.get(field)) + "</td>")
    row.append("</tr>")

    custom_fields.append("".join(row))

当我将custom_fields变量提供给模板时,我得到的只是:

<tr><td><django.forms.widgets.CheckboxInput object at 0x1fa7d90></td></tr>

如何才能正确呈现表单?

这就是我最终要做的事情:

form1 = CustomForm1()
form2 = CustomForm2()
form3 = CustomForm3()

for field in FIELDS:
    row = []
    row.append("<tr>")
    row.append("<td>" + str(form1.fields.get(field)) + "</td>")
    row.append("<td>" + str(form2.fields.get(field)) + "</td>")
    row.append("<td>" + str(form3.fields.get(field)) + "</td>")
    row.append("</tr>")

    custom_fields.append("".join(row))

所以我可以在一个表中一起显示所有表单字段.

解决方法

我刚想通了.它的形式是[field]而不是form.fields [field]

>>> f = MyForm()
>>> f
<myform.forms.MyForm object at 0x1fa7810>

>>> f['myfield']
<django.forms.forms.BoundField object at 0x20c7e50>

>>> f.fields['myfield']
<django.forms.fields.BooleanField object at 0x1fa7850>

所以form.fields是所有未绑定字段的列表,而form .__ getitem__是一个返回绑定字段的callable.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读