我想将django-pagedown
添加到我网站的博客中。我有一个网站,一个名为博客的应用程序,用Django构建,我已经实现了内置注释。这些工作正常,但我现在正试图让django-pagedown
在评论中工作。例如,如果用户对我的某篇文章发表评论,我希望能够支持markdown,这样用户就可以使用代码段或格式进行评论而不使用HTML(我可能不想支持)。
我用pip成功安装了django-pagedown:
pip install django-pagedown
我已将其添加到INSTALLED_APPS
中的settings.py
部分并收集了静态文件:
INSTALLED_APPS = (
...
'pagedown',
...
)
python manage.py collectstatic
发生了一些事情,因为当我将此代码添加到我的blog/admin.py
文件时,出现了管理员帖子预览窗口:
...
from pagedown.widgets import PagedownWidget, AdminPagedownWidget
from django.db import models
....
class PostAdmin(admin.ModelAdmin):
...
formfield_overrides = {
models.TextField: {'widget': AdminPagedownWidget },
}
...
由于我对Django不是很熟悉,所以文档在:
https://github.com/timmyomahony/django-pagedown
对我来说还不足以完全理解它是如何实现的。基本上,我想将此功能添加到博客中的用户评论部分。
我希望能够在不制作自定义表单的情况下完成此操作,只需使用Django中的内置注释即可。这可能吗?
我能够实现这一目标,但最终还是使用Disqus,因为它具有强大的功能,并且易于设置和调节。
答案 0 :(得分:2)
首先,仔细考虑是否真的要使用django.contrib.comments
;它在版本1.6中被弃用,之后将不再受支持。请参阅讨论here。
如果您确实想要使用它,则必须自定义评论应用。 documentation列出了你需要做的事情。在您的forms.py
中,您将拥有以下内容:
from pagedown.widgets import PagedownWidget
from django.contrib.comments.forms import CommentForm
from django.forms import CharField
class PagedownCommentForm(CommentForm):
comment = CharField(widget=PagedownWidget())
您还需要在新应用get_form()
中添加__init__.py
功能,并进行文档中描述的其他更改。
希望这会让您知道如何继续。