我是django的新手并创建了一个简单的博客应用程序,现在尝试在评论中添加markdown:
以下是评论模型:
class Comment(models.Model):
created = models.DateTimeField(auto_now_add=True)
author = models.CharField(max_length=60)
body = models.TextField()
post = models.ForeignKey(Blog)
def __unicode__(self):
return unicode("%s: %s" % (self.post, self.body[:60]))
在post.html中,我有:
<!-- Add Comments -->
{% if user.is_authenticated %}
<div id="addc">Your Comment?</div>
<!-- Comment form -->
<form action="{% url "blog.views.add_comment" post.id %}" method="POST">{% csrf_token %}
<div id="comment-form">
<p>{{ form.body }}</p>
</div>
<div id="submit"><input type="submit" value="Submit"></div>
</form>
{% endif %}
以及呈现帖子(和评论)的观点:
def post_withslug(request, post_slug):
post = Blog.objects.get(slug = post_slug)
comments = Comment.objects.filter(post=post)
d = dict(post=post, comments=comments, form=CommentForm(), user=request.user)
d.update(csrf(request))
return render_to_response("blog/post.html", d)
在form.py中的我有:
from django_markdown.widgets import MarkdownWidget
class CommentForm(forms.ModelForm):
body = forms.CharField(widget=MarkdownWidget())
class Meta:
model= Comment
fields= ('body',)
我已经使用django-markdown用于管理员后端并且它在那里工作正常但我不确定如何将此应用程序(或其他相同的效果)应用于博客评论,我找不到任何教程关于它。 所以我感谢你的帮助。
答案 0 :(得分:2)
您需要为评论模型编写自定义表单
<强>评论/ forms.py 强>
from django_markdown.widgets import MarkdownWidget
...
class CommentForm(forms.Form):
body = forms.CharField( widget=MarkdownWidget() )
markdown小部件处理将编辑器的必要js和css添加到页面,假设您没有在模板中明确定义资源,但您的表单或视图需要将注释与正确的帖子和用户相关联。
在显示方面,您需要在显示评论时使用降价模板标签
<强>评论/模板/ comment.html 强>
{% load django_markdown %}
...
{{ comment.author }} //etc
{{ comment.body|markdown }}