【问题标题】:How do I make django show empty cells with it's template system?如何让 django 使用它的模板系统显示空单元格?
【发布时间】:2010-10-06 12:56:24
【问题描述】:

我只使用 Django 中的模板系统编写了一个表格,它没有显示空表格单元格周围的边框。

我认为没问题 - 我以前解决过这个问题。我将 &nbsp 放在任何要留空的单元格中。 Django 好心地将 & 符号转换为 &amp,以便我在空单元格中有 &ampnbsp,并在浏览器中查看时显示 &nbsp。

我用谷歌搜索了它,并尝试将 {%autoescape off%} 和 {%endautoescape%} 放在有问题的桌子周围,但它也没有任何好处。

我也尝试将 autoescape=False 添加到上下文构造函数中,但这也无济于事。

让 Django 在空单元格周围显示边框的魔术技巧是什么?

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    这是一个已知的 CSS/HTML“问题”。你想使用 Django 的“default”过滤器。

    {{value|default:" "}}
    

    (如果我能把它写出来,我会被诅咒的。在SO中,你怎么写“nbsp;”没有前面的&导致所有东西都消失并被空白代替?)

    【讨论】:

    • 嗯,那也没用。奇怪,不知道是不是引号。对编辑污染感到抱歉。
    【解决方案2】:

    您真正需要做的是在这些空单元格中获得一个不间断的空间,并防止 Django 转义 HTML 实体。您能否将几个过滤器链接在一起以实现您正在寻找的内容?

    {{ value|default:" "|safe }}
    

    编辑:我应该提到   相同,只是不会被 SO 解析器破坏。

    【讨论】:

      【解决方案3】:

      Django 不会控制表格的外观。修补自动转义也是多余的,而且可能会变得很危险。

      您是否使用 CSS 来设置表格样式?通过使用类似的属性,例如

      td {
        border: 1px solid red;
      }
      

      您可以让每个单元格都有一个红色边框。不管是不是空的。

      【讨论】:

      • 我试过了 - 它没有用。空单元格没有边框。我正在使用 Internet Explorer 7。
      • 那么您在某种程度上使用了错误的表格。除非单元格的宽度和高度为零,否则它将显示一个边框,如果它有一个。如果您的单元格的内容在同一行或同一列中,则相关单元格会自动具有宽度。
      【解决方案4】:

      有空单元格 CSS 属性。

      http://www.w3.org/TR/CSS21/tables.html#empty-cells

      我不记得它是否适用于所有浏览器

      【讨论】:

        猜你喜欢
        • 2020-08-21
        • 1970-01-01
        • 1970-01-01
        • 2021-09-21
        • 1970-01-01
        • 1970-01-01
        • 2022-06-16
        • 2021-01-08
        • 2021-07-25
        相关资源
        最近更新 更多