为django TextField添加富文本格式功能

问题描述 投票:10回答:3

我有一个django模型,其中包含description字段:

class Product(models.Model):
    name = models.CharField(max_length="125")
    description = models.TextField()

class ProductForm(ModelForm):
    class Meta:
        model = Product
    def __init__(self, *args, **kwargs):
        super(ProductForm, self).__init__(*args, **kwargs)
        self.fields['description'].widget.attrs = { 'placeholder':'Description', 'rows':'10'}

我正在渲染如下

<html>
  <body>
     {{form.name}}
     {{form.description | linebreaks}}  
  </body>
</html>

所以使用上面的过滤器linebreaks,我能够将数据作为行格式化,但现在我想在描述字段中给出一个URL(www.google.co.in),它应该是前端可点击的product detail page

如何在前端的django描述字段中添加富文本格式?

django text-formatting field-description
3个回答
16
投票

考虑使用django-tinymce。 有了这个,您可以轻松地将TinyMCE富文本编辑器与您的文本区域集成。

List of django wysiwig apps


1
投票

另一种方法是在描述字段中添加一些html

<a href="yourlink.com">your link</a> 

并使用安全标签在前端访问:

{{form.description | safe | linebreaks}}

务必先放置安全标签,否则将无效


1
投票

我认识的派对迟到了,但我一直在使用的另一种选择是使用Wagtail管理员,特别是from wagtail.core.fields import RichTextField。这为管理员提供了一个内置且非常好的Rich Text编辑器。

您可以创建基本的django模型并使用RichTextField作为模型的一部分,然后您可以使用Wagtail注册该模型,并且您可以使用内置的WYSWIG获得非常好的编辑界面。你可以在这里看到更多:https://docs.wagtail.io/en/v2.4/reference/contrib/modeladmin/index.html

© www.soinside.com 2019 - 2024. All rights reserved.