【问题标题】:Modification of field in form修改表单中的字段
【发布时间】:2014-10-03 00:45:23
【问题描述】:

我有表格:

class myContact(forms.Form):
  subject = forms.CharField()
  email = forms.EmailField(required=True)`

使用myContact().as_table()我可以生成这样的html代码:

<tr>
  <th><label for="id_subject">Subject:</label></th>
  <td><input id="id_subject" name="subject" type="text" /></td>
</tr>
<tr>
  <th><label for="id_email">Email:</label></th>
  <td><input id="id_email" name="email" type="email" /></td>
</tr>

我应该如何改变表格以获得这样的东西:

<tr>
  <th><label for="id_subject">Subject:</label></th>
  <td><input id="id_subject" name="subject" type="text" /></td>
  <td>new_field</td>
</tr>

<tr>
  <th><label for="id_email">Email:</label></th>
  <td><input id="id_email" name="email" type="email" /></td>
  <td>new_field</td>
</tr>

在字段末尾添加了新的td

【问题讨论】:

  • 最后一个 td 是干什么用的?老实说,我找不到这样做的理由。
  • 我需要这样建表:description |字段(输入、文本区域或选择)| [这里的东西] 在 [这里的东西] 可以是 eq。此字段的编辑/删除按钮
  • 您可以将其渲染为as_ul,然后使用 CSS 显示您想要的网格,对吗?
  • 你在说什么? :O

标签: python html django forms


【解决方案1】:

在这种情况下,您希望手动呈现字段。您可以像这样呈现的每个字段:

{{ form.name_of_field }}

阅读更多文档:https://docs.djangoproject.com/en/dev/topics/forms/#rendering-fields-manually

我不确定这是否正确,但现在您的代码应该如下所示:

<table>
    <tr>
        <td>{{ form.subject}}</td>
        <td>new_field</td>
    </tr>
    <tr>
        <td>{{ form.email}}</td>
        <td>new_field</td>
    </tr>
</table>

【讨论】:

  • 我认为这是一个很好的方向,但是......使用代码 template = get_template('contact.html') output = template.render(Context({'form': myContact()})) return HttpResponse(output) 和 code.html: &lt;table&gt; &lt;tr&gt; {{ form.subject}} &lt;td&gt;new_field&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; {{ form.email}} &lt;td&gt;new_field&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; 输出是:` 超过输入?我必须手动操作吗?
  • 是的,你应该这样做。顺便说一下,和输入上面的
  • new_field
    new_field`
  • 那么现在我应该怎么做才能让
  • 一样。
  • 什么?有什么事没解决吗?顺便说一句,如果我的回答有帮助,请投票:)
猜你喜欢
  • 2018-02-22
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
  • 2010-10-13
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
相关资源
最近更新 更多