如何在 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':内容})
我在 model.py
中添加了 trixfrom 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 中显示了如下 这张照片 这样的结果:
但它没有在我的模板中显示我想要的输出
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':内容})