Джанго: Как определить «Далее» в форме комментариев - PullRequest
1 голос
/ 07 марта 2011

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

Как определить переменную "next", чтобы пользователь перенаправлялся?

Информация о перенаправлении: http://docs.djangoproject.com/en/dev/ref/contrib/comments/#redirecting-after-the-comment-post

Также, вот форма, которую я использую.Типы comment.ty не работают, но я думаю, что это то, что я должен сделать - определить два различных следующих ввода для каждого типа комментария (рисунок против приема пищи).

{% load comments i18n %}
<form action="{% comment_form_target %}" method="post">{% csrf_token %}
    {% if comment.type == '19' %}
    <input type="hidden" name="next" value="{% url meal comment.object_pk %}" />
    {% endif %}
    {% if comment.type == '23' %}
    <input type="hidden" name="next" value="{% url picture comment.object_pk %}" />
    {% endif %}
  <!-- <input type="hidden" name="next" value="{{ next }}" /> -->
  {% for field in form %}
    {% if field.is_hidden %}
      {{ field }}
    {% else %}
      {% if field.errors %}{{ field.errors }}{% endif %}
      <p
        {% if field.errors %} class="error"{% endif %}
        {% ifequal field.name "honeypot" %} style="display:none;"{% endifequal %}
         {% ifequal field.name "name" %} style="display:none;"{% endifequal %}
         {% ifequal field.name "email" %} style="display:none;"{% endifequal %}
         {% ifequal field.name "url" %} style="display:none;"{% endifequal %}
         {% ifequal field.name "title" %} style="display:none;"{% endifequal %}>
        <!-- {{ field.label_tag }}  -->{{ field }}
      </p>
    {% endif %}
  {% endfor %}
  <p class="submit">
        <button type="submit">Send</button>
    <!-- <input type="submit" name="preview" class="submit-preview" value="{% trans "Preview" %}" /> -->
  </p>
</form>

И затем на Еде &У меня есть страницы с картинками:

    <h4>Post a Message</h4>
{% render_comment_form for meal %}

    <h4>Post a Message</h4>
{% render_comment_form for picture %}

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

Разобрался.Чтобы использовать следующий с несколькими объектами, используйте оператор if.

{% if picture %}
<input type="hidden" name="next" value="{% url picture picture.id %}" />
{% endif %}
0 голосов
/ 07 марта 2011

Если вы хотите остаться на той же странице, ajax - это опция, вы можете использовать что-то вроде django_ajaxcomments , есть много сообщений о других способах сделать это с помощью ajax.

...