2

我想添加django-pagedown到我网站的博客中。我有一个网站和一个名为 blog 的应用程序,使用 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,因为它具有强大的功能并且易于设置和调节。

4

1 回答 1

2

首先,仔细考虑你是否真的要使用django.contrib.comments; 它在 1.6 版中已被弃用,之后将不再受支持。请参阅此处的讨论。

如果您确实想使用它,您将不得不自定义评论应用程序。文档列出了您需要做的事情。在你的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,并进行文档中描述的其他更改。

希望这能让您了解如何进行。

于 2013-08-16T10:47:50.463 回答