【问题标题】:django + mysql text field format with breakline带有断线的 django + mysql 文本字段格式
【发布时间】:2012-07-21 01:59:40
【问题描述】:

我的 MySQL 表中有一个 text 字段。我想用<br> 或模板的某种格式来格式化所有新行。框架中是否为此内置了任何内容?我尝试阅读以下页面:

https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs

但似乎该页面不适用于此?我可以参考其他文档吗?谢谢!

【问题讨论】:

    标签: mysql django python-2.7


    【解决方案1】:

    我决定采用以下方式:"<br />".join(word.split("\n"))。不确定这是否是最好的方法......仍在深入研究。不过它确实有效!

    【讨论】:

    • Django 的linebreaksbr 使用replace,但使用splitjoin 也可以。使用内置 linebreaksbr 而不是您自己的 sn-p 的主要优点是 linebreaksbr 会为您处理自动转义。
    【解决方案2】:

    听起来您需要linebreaksbr 模板过滤器。

    通常,您会在模板中使用它:

    {{ instance.fieldname|linebreaksbr }}
    

    但是,也可以将其导入并在您的视图中使用:

    from django.template.defaultfilters import linebreaksbr
    text_with_br = linebreaksbr(instance.fieldname)
    

    使用linebreaksbr而不是编写自己的sn-p的好处是换行符会为你处理autoescaping

    【讨论】:

    • 我从没听说过那个模板标签。但我比我的解决方案更喜欢它。
    【解决方案3】:

    根据您的用例,这对您来说可能有点过头了,但我在管理区域中使用django-tinymce 将富文本编辑字段添加到将在模板中使用的字符字段。这会在数据库中保存一个 html 字符串,您可以在模板中使用:

    {{ model.field|safe }}
    

    在不丢失 html 格式的情况下输出它。这很容易设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-17
      • 2011-04-24
      • 2021-10-26
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      相关资源
      最近更新 更多