【发布时间】:2020-10-11 04:47:47
【问题描述】:
嗨,我正在练习 Django 和 Python
我遇到解析 HTML 问题,我通过管理页面保存了一些 html,我尝试渲染,但它渲染为字符串!
这是我的模板部分
description
其他列渲染良好
{% block content %}
<div class="article-detail">
<div class="article">
<img src="{{ article.thumb.url }}" />
<h2>{{ article.title }}</h2>
<p>{{ article.date }}</p>
<div>
{{ article.description }}
</div>
</div>
</div>
{% endblock %}
这是我的模型
from tinymce import HTMLField
class Article(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField()
body = models.TextField()
description = HTMLField('Content', blank=True)
body = models.TextField()
date = models.DateTimeField(auto_now_add=True)
thumb = models.ImageField(default='default.png', blank=True)
...
这部分我的看法
def article_detail(request, slug):
article = Article.objects.get(slug=slug)
return render(request, 'articles/article_detail.html', {'article': article})
我尝试使用 javascript
{% block content %}
<div class="article-detail">
<div class="article">
<img src="{{ article.thumb.url }}" />
<h2>{{ article.title }}</h2>
<p>{{ article.date }}</p>
</div>
</div>
<script>
var article = "<div>{{ article.description }}</div>"
console.log(article);
document.write(article);
</script>
{% endblock %}
我希望这个工作,但是
但我得到了 JS 语法错误
控制台不显示任何内容
为什么?
如果它转换为字符串,它应该可以工作....
什么是最好的渲染方式?
我很抱歉我的英语不好
【问题讨论】:
-
你的view方法在哪里?
-
@Vishal Asthana 哦,我编辑了它
-
我认为 django 没有 HTML 字段。为什么不直接使用常规的 charField 或 TextField 进行描述?
-
Vishal Asthana 是的,我错过了,我使用的是 tinymce 模块
标签: javascript python html django