【问题标题】:django forms result in an poorly idented formdjango 表单导致表单识别不佳
【发布时间】:2015-03-13 09:23:05
【问题描述】:

我在 django(1.7.2)/python(2.7) 中做一个示例项目

(1) 我正在使用如下 django 表单

forms.py
class BookAddForm(forms.Form):
  title = forms.CharField(label = "Book Title", max_length=256)
  author = forms.CharField(label = "Author", max_length=256)
  isbn = forms.CharField(label = "ISBN Number", max_length=256)

views.py
...
def add(request):
  form = BookAddForm()
  return render(request, "add_view.html", {'add_view_form': form})
...

add_view.html
....
  <form action="/books/add/" method="post">
    {% csrf_token %}
    {{ add_view_form }}
    <input type="submit" value="Submit" />
  </form>
....

我得到一个如下截图所示的表单 UI 更新:

<form action="/books/add/" method="post">
                <input type='hidden' name='csrfmiddlewaretoken' value='yEe6xirTklvtAQ0qowBhb8REpFKn4knR' />
                <tr><th><label for="id_title">Book Title:</label></th><td><input id="id_title" maxlength="256" name="title" type="text" /></td></tr>
<tr><th><label for="id_author">Author:</label></th><td><input id="id_author" maxlength="256" name="author" type="text" /></td></tr>
<tr><th><label for="id_isbn">ISBN Number:</label></th><td><input id="id_isbn" maxlength="256" name="isbn" type="text" /></td></tr>
                <input type="submit" value="Submit" />
</form>

我尝试使用 forms api outputting 中提到的“as_table”、“as_p”和“as_li”,但它们都没有帮助

(2) 我尝试使用django-bootstrap-form module 集成引导程序。但由于某种原因,我没有看到正在应用的样式。

(3) 我已公开我的bitbucket repository。请随时修补它并帮助我更好地设计我的网络服务。

我确实被阻止了;非常感谢这里的任何帮助。

【问题讨论】:

  • 可以为表单添加生成的 HTML 吗?
  • @LegoStormtroopr 添加了生成的 html。 PTAL
  • 是的,我没有下载一些奇怪的文件。对生成的 HTML 进行剪切,仅针对表单,并将其插入 inline,以便我们看到它。
  • @LegoStormtroopr 完成。内联生成的html
  • 如 catavaran 所述,您需要将其包装在表格元素中。

标签: python django forms twitter-bootstrap


【解决方案1】:

as_table 仅输出 &lt;tr&gt;/&lt;th&gt;/&lt;td&gt; 标签。你应该用&lt;table&gt;标签包装它:

<form action="/books/add/" method="post">
  {% csrf_token %}
  <table>
    {{ add_view_form.as_table }}
  </table>
  <input type="submit" value="Submit" />
</form>

我在您的 bitbucket 存储库中的应用程序中对其进行了测试。它看起来像这样:

【讨论】:

  • 我在您的问题更新生成的 html 中没有看到 &lt;table&gt; 标记。
  • 是的。,@catavaran:我已经尝试在我的模板中使用 标签 bitbucket.org/audiry/crowdlibrary/src/… 。但是,仍然没有在 gen 中生成。 HTML。我不知道为什么,我猜这是我的担心
  • 我克隆了您的存储库,在 python manage.py runserver 之后,我得到了完美对齐的表单。我没有接触任何代码或模板。请参阅我更新的答案中的屏幕截图。
  • 嗯……我的错;我在两个地方复制了一块模板代码(代码味道不好!);当我不得不在 books_view.html 文件中尝试时,我一直在尝试不同的模板文件(add_view.html)。当我看到您关于书籍/添加运行良好的评论时,我意识到我正在更新错误的模板文件。我在 books_view.html 中进行了更改,结果发现我报告的所有不工作的东西都运行良好。非常感谢您克隆我的仓库并试用。
猜你喜欢
  • 1970-01-01
  • 2016-03-19
  • 2014-04-18
  • 1970-01-01
  • 2018-07-26
  • 2021-05-02
  • 2020-10-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多