Извините, прочитав ваши комментарии к моему последнему ответу, вам не нужно включать форму комментария в ваше представление, если вы используете встроенную структуру комментариев:
from forms import *
from models import *
def view_item_detail(request, item_id):
item = get_object_or_404(Item, pk=item_id)
return render_to_response('item_detail.html',
RequestContext(request, {'item': item,
'authentication': request.user.is_authenticated(),
'user': request.user,}))
Теперь убедитесь, что у вас есть этов ваших urls.py:
urlpatterns = patterns('',
...
(r'^comments/', include('django.contrib.comments.urls')),
...
)
и 'django.contrib.comments'
, добавленных к вашему INSTALLED_APPS, и syncdb'd
теперь в вашем файле item_detail.html
вы должны добавить:
{% load comments %}
, где вы хотите, чтобы комментарии отображались:
{% render_comment_list for item %}
, где вы хотите, чтобы отображалась форма добавления комментариев:
{% if authentication %}
{% get_comment_form for item as form %}
<form action="{% comment_form_target %}" method="post">
{{ form }}
<tr>
<td></td>
<td><input type="submit" name="preview" class="submit-post" value="Preview"></td>
</tr>
</form>
{% endif %}
читать документы here
и для настройки прочитайте this
page.
как часть документов:
Чтобы указатьURL-адрес, на который вы хотите перенаправить сообщение после публикации комментария, вы можете включить в форму комментария скрытым вводом, который вызывается следующим.Например:
<input type="hidden" name="next" value="{% url my_comment_was_posted %}" />
(отредактировано для вашего примера):
{% if authentication %}
{% get_comment_form for item as form %}
<form action="{% comment_form_target %}" method="post">
{{ form }}
<tr>
<td></td>
<input type="hidden" name="next" value="{{ item.get_absolute_url }}" />
<td><input type="submit" name="preview" class="submit-post" value="Preview"></td>
</tr>
</form>
{% else %}
<p>You must be logged-in to post a comment</p>
{% endif %}