У нас есть сайт, похожий на блог о трясогузках, и мы хотели бы добавлять комментарии к нашим типам сообщений. Каждое сообщение является page
объектом.
Мы подумали об использовании django-contrib-comments или реализации собственного простого приложения комментариев django с ajax.
Но каков будет «всеобщий подход к трясогузке» для создания комментариев на общедоступном сайте трясогузки (только для зарегистрированных пользователей трясогузки, использующих ajax)?
Мы не ищем полной реализации, нам просто нужны некоторые подсказки или подсказки для разумного подхода к трясогузкам.
Наш фактический подход заключается в том, чтобы комментарии были доступны в администраторе трясогузки как InlinePanel
для каждого PostPage
. Но мы изо всех сил пытаемся отобразить форму django для добавления новых комментариев во внешний интерфейс:
# blog/models.py
class PostPage(RoutablePageMixin, Page):
...field definitions...
@route(r'^comment/new/$')
def add_comment_to_post(self, request):
from .forms import CommentForm
if request.method == 'POST':
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save()
return render(request, self.template, {
'page': self,
'comment': comment,
})
else:
form = CommentForm()
return render(request, self.template, {
'page': self,
'form': form,
})
content_panels = Page.content_panels + [
...FieldPanels...
InlinePanel('comments', label="Comments"),
]
class Comment(models.Model):
text = models.TextField()
panels = [FieldPanel('text'),]
def __str__(self):
return self.text
class Meta:
abstract = True
class PostPageComments(Orderable, Comment):
page = ParentalKey('PostPage', related_name='comments')
# blog/forms.py
from django import forms
from .models import PostPageComments
class CommentForm(forms.ModelForm):
class Meta:
model = PostPageComments
fields = ['text']
# blog/templates/blog/post_page.html
{% extends "core/base.html" %}
{% load wagtailcore_tags %}
{% block content %}
{% include 'stream/includes/post_list_item.html' with include_context="post_detail_page" post=self %}
<h3>New comment</h3>
<form method="post" action="comment/new/" id="comment-new">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default">Send</button>
</form>
{% endblock %}
Но: form
({{ form.as_p }}
) не визуализируется - есть подсказки? Администратор django для PostPageComments
работает как положено.
django-contrib-comments
. - person dahrens   schedule 30.12.2016django-contrib-comments(-xtd)
было бы моим последним средством, но я действительно хочу попробовать его с чистой трясогузкой и джанго. Поэтому я обновил свой вопрос, чтобы показать свою фактическую реализацию. - person tombreit   schedule 30.12.2016