在 Django 中使用有效的 HTML 4.01 Strict
Posted
技术标签:
【中文标题】在 Django 中使用有效的 HTML 4.01 Strict【英文标题】:Using valid HTML 4.01 Strict with Django 【发布时间】:2011-01-24 16:35:25 【问题描述】:我发现了一个类似的问题here,但我正在寻找更通用的解决方案。
现在,当 Django 为您生成任何类型的 html 时(这主要发生在生成表单时),它默认使用自关闭标签,即 <br />
而不是 <br>
。 <br />
是有效的 XHTML,我也认为是 HTML5,但它不是有效的 HTML4。
有什么干净的方法可以覆盖它吗?还是用 XHTML 或 HTML5 编写 django 站点更好?
【问题讨论】:
【参考方案1】:您可以完全重写 django 为您输出 HTML 的方式。例如:对于表格,您可以:
使用属性“as_xxx”在使用表、p 或 li 的输出之间进行选择。 打印表单label by label,选择标签包装器。 使用widget 定义表单将如何打印到HTML。当然,您需要新的表单来执行此操作,并且可以使用 Django 1.X。
【讨论】:
谢谢 - 这确实解决了问题的一部分,但还有其他领域(如 csrf 令牌)我必须单独解决 sigh 在 V1.2 之前,csrf token 不只是一个空字符串吗? 啊,我的错,你可能是在谈论 'django.middleware.csrf.CsrfResponseMiddleware' 的遗留方法【参考方案2】:当 1.2 的开发开始时,有一个whole series of discussions,提出了一系列解决方案,但没有就一般的前进方式达成一致。
但请参阅 Simon Willison 的 Django-HTML project 了解一种可能的解决方案。
【讨论】:
嗯...谢谢。我阅读讨论越多,我发现的潜在陷阱就越多。毕竟我可能会坚持使用 XHTML 或 HTML5,因为这似乎是更简单的选择。以上是关于在 Django 中使用有效的 HTML 4.01 Strict的主要内容,如果未能解决你的问题,请参考以下文章
html5与html 4.01的区别 doctype几种分类及其不同