如何在 Django 项目中使用 django-trix?

How to use django-trix in a Django Project?

我在 model.py

中添加了 trix
from trix.fields import TrixField
.....
class Article(models.Model):
    title = models.CharField(max_length=100)
    content = TrixField('content')
    time_added = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return 'Article Name: {}, Added: {}'.format(self.title, self.time_added)
.....

它在我喜欢的 Django-admin 中显示了如下 这张照片 这样的结果:

但它没有在我的模板中显示我想要的输出 View.py

class FeaturedArticle(ListView):
    model = Article
    context_object_name = 'featuredarticles'
    template_name = 'blog/blog.html'

    def get_queryset(self):
        return Article.objects.filter(time_added__lte=timezone.now()).order_by('-time_added')[:5]

模板部分

<!-- article area  -->
    <div class="container">
        <div class="row">
            <div class="col-md-12 text-center">
                <h2 class="blog-post-title">Featured Articles</h2>
                <!-- tempalate tag here -->
                    {% for article in featuredarticles %}
                        <hr>
                        <h3>{{article.title}}</h3>
                        <p>{{article.content}}</p>
                <!-- tempalate tag here -->
                    {% endfor %}
            </div>
        </div>
    </div><br>
<!-- article area end -->

我怎样才能修复

article.content包含HTML,Django默认会转义。您可以使用 safe 过滤器来确保内容不会被转义:

{{ article.content|safe }}

这当然意味着可以在您的页面中插入任意 HTML,因此您应该注意谁有能力编辑该字段。

<p>{{article.content|safe}}</p>

或 在观看次数中使用 mark_safe

从django.utils.safestring导入mark_safe

内容="<h1>hi</h1>"
return 渲染(请求,'hi.html',{'content':内容})