添加django-pagedown到Django 1.5博客评论

时间:2013-08-12 21:02:55

标签: django blogs django-comments pagedown

我想将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,因为它具有强大的功能,并且易于设置和调节。

1 个答案:

答案 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功能,并进行文档中描述的其他更改。

希望这会让您知道如何继续。