@larionov_n

Как подключить django-threadedcomments?

Добрый день, помогите подключить к Django пакет с древовидными комментариями. https://github.com/HonzaKral/django-threadedcomments

Не получается понять, как они с Django работают. Нужна ли своя модель для комментариев? В исходниках пакета вроде есть уже модели и через админку я их могу добавить, появляются в БД. Но не понимаю как сохранить форму с комментариями? Нужен ли обработчик post для формы в views?

Вот что я сделал читая Readme:

1) Установил через pycharm пакет с комментариями.
2) Добавил в settings.py в installed_apps все что нужно
3) В urls.py добавил роутинг:
urlpatterns = patterns('',
    url(r'^comments/', include('django.contrib.comments.urls')),
    url(
        r'^blog/view/(?P<slug>[^\.]+).html',
        'blog.views.view_post',
        name='view_blog_post')
)

4) В шаблоне с постом загрузил теги от комментариев:
{% load threadedcomments_tags %}
    {% render_comment_list for post %}
    {% render_comment_form for post %}
    {% get_comment_count for post as comment_count %}
    <p>This post has {{ comment_count }} comments.</p>

5) Скопировал с gitHub из examples папку с шаблонами comments -> core (form.html, list.html), (base.html, posted.html).
6) У меня во view.py - Обработчик GET запроса Post (статьи блога) такой:
Я так понимаю тут надо обрабатывать post?
def view_post(request, slug):
    item = get_object_or_404(Post, slug=slug)
    item.addViewed()
    c = {
        'post': item,
        'breadcrumbs': breadcrumbs('blog.views.view_post', obj=item)}
    c.update(csrf(request))
    return render_to_response('blog/' + 'view_post.html', c)

7) Шаблон формы
Тут надо в action добавить метод который во views.py обрабатывает url?
<div class="form-comment" id="form-comment">
    <form action="comments/postfree" method="post">{% csrf_token %}
        {{ form.as_p }}{# just to keep the example simple. Consider using django-crispy-forms in real life #}
        <p>
            <input type="submit" value="Submit Comment"/>
            <a href="#c0" id="cancel_reply">cancel reply</a>
        </p>
    </form>
</div>

Не могу понять Example на GitHub, логично что post моей формы должен быть как-то обработан и сохранен в созданную после syncdb таблицу комментов в БД. Так-же не понимаю, где связывается Post с комментариями, я думал, что достаточно просто вызвать в любом template теги и апп комментов сам поймет в какую сущность добавили комментарий?:) Я работаю с Python недавно, поэтому еще не совсем понял его особенности и Django. Подскажите что я упустил, должно же все быть намного проще :)
  • Вопрос задан
  • 2898 просмотров
Решения вопроса 1
@larionov_n Автор вопроса
Запустил архив с примером с github, комменты заработали, в общем буду разбираться с исходниками :)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы