Добавление django-pagedown в комментарии к блогу Django 1.5

Я хочу добавить django-pagedown в блог своего сайта. У меня есть сайт и приложение под названием блог, созданное с помощью Django, и я реализовал встроенные комментарии. Они прекрасно работают, но сейчас я пытаюсь заставить django-pagedown работать в комментариях. Например, если пользователь комментирует одну из моих статей, я хотел бы иметь возможность поддерживать уценку, чтобы пользователи могли комментировать фрагменты кода или форматирование без использования HTML (который я, вероятно, не хочу поддерживать).

Я успешно установил django-pagedown с помощью pip:

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, потому что у него отличная функциональность, его легко настроить и модерировать. .


person nicorellius    schedule 12.08.2013    source источник
comment
Я только что создал новый сайт предложений в Area 51 для Django: area51.stackexchange.com /предложения/58810/   -  person nicorellius    schedule 15.08.2013
comment
Предложение выше было закрыто...   -  person nicorellius    schedule 16.08.2013


Ответы (1)


Во-первых, тщательно обдумайте, действительно ли вы хотите использовать 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 вашего нового приложения и внести другие изменения, описанные в документации.

Надеюсь, это даст вам представление о том, как действовать дальше.

person Kevin Christopher Henry    schedule 16.08.2013
comment
Спасибо за ответ. Я безуспешно танцевал вокруг того, что вы указали. На самом деле я потратил довольно много времени на ссылку на документацию, которую вы предложили ... У меня был код, похожий на то, что вы уже упоминали, но я не включил его, потому что думал, что я на неправильном пути (мне нужен беспристрастный ответ)). Я отредактирую свой ответ и попробую еще раз то, на что вы ссылались. Большое спасибо за наводку на django.contrib.comments. - person nicorellius; 16.08.2013
comment
Спасибо за ответ. - person nicorellius; 16.08.2013
comment
Рад помочь. Каждый раз, когда я пытался настроить администратора, ModelForms, Inlines и т. д., мне приходилось пробовать и ошибаться, а также углубляться в исходный код. Но в итоге работает... - person Kevin Christopher Henry; 17.08.2013