2012-02-23 2 views
2

как я могу избавиться от пользователей, направляющихся на страницу «Спасибо вам, за ваш комментарий» после комментирования на сайте Django? Я хочу, чтобы пользователи были перенаправлены на ту же страницу, которую они прокомментировали. Я использую комментарии Django .Django Comments-перенаправление

Я попытался добавить:

  <input type=”hidden” name=”next” value=”"{% url 
      django.contrib.comments.views.comments.comment_done %}" /> 

Но это не работает. Ниже коды на мой комментарий/form.html

  {% load comments %} 
     {% get_comment_count for sol as comment_count %} 
     {% get_comment_list for sol as comment_list %} 
     {% get_comment_form for sol as form %} 
     {% if user.is_authenticated %} 
     <form action="{% comment_form_target %}" method="post"> 
    {% csrf_token %} 
    {% if next %}<input type="hidden" name="next" value="{% url 
     django.contrib.comments.views.comments.comment_done %}" />{% endif %} 
    {% for field in form %} 
     {% if field.is_hidden %} 
      {{ field }} 
     {% else %} 
      {% if field.name != "name" and field.name != "email" 
       and field.name != "url" %} 
       {% if field.errors %}{{ field.errors }}{% endif %} 
       {{ field }} 
      {% endif %} 
     {% endif %} 
    {% endfor %} 
    <input class="submit-post" name="post" type="submit" value="Comment" /> 

    </form> 
    {% else %} 
     I'm sorry, but you must be <a href="javascript:alert('send to 
    login page')">logged in</a> to submit comments. 
     {% endif %} 

ответ

3

Сначала давайте рассмотрим код:

<input type=”hidden” name=”next” value=”"{% url 
     django.contrib.comments.views.comments.comment_done %}" /> 
  1. Две двойные кавычки: значение = «» {% URL

  2. URL-адрес:: так что это будет перенаправлено на «Спасибо за ваш комментарий страницу», который вы хотите, чтобы избежать

  3. имен Использовать URL вместо имени модуля: {% url comments-comment-done %}, а не {% url django.contrib.comments.views.comments.comment_done %}

Вместо этого, вы можете перенаправить комментарий постер к абсолютный адрес объекта, он отметил:

<input type="hidden" name="next" value="{{ form.instance.content_object.get_absolute_url }}" /> 

Это предположить, что ваша модель имеет стандартный метод get_absolute_url(), определенный.

Или даже, вы можете перенаправить пользователя на той же странице он находится на:

<input type="hidden" name="next" value="{{ request.path }}" /> 

или предыдущую страницу он посетил:

<input type="hidden" name="next" value="{{ request.META.HTTP_REFERER }}" /> 
+0

Спасибо так много! Сейчас он работает. :) – picomon

+0

Нет проблем, можете ли вы принять ответ? – jpic