Джанго Комментарии-Перенаправление - PullRequest
2 голосов
/ 23 февраля 2012

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

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

         <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 %} 

1 Ответ

3 голосов
/ 23 февраля 2012

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

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

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

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

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

<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 }}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...