Django:如何在Comments表单中定义“Next”

时间:2011-03-07 16:28:18

标签: django django-forms django-views django-comments

我在我的网站上的两个地方使用Django评论框架。每次提交后,我都希望用户可以重定向回原来的页面。

如何定义“下一个”变量以便重定向用户?

有关重定向的信息:http://docs.djangoproject.com/en/dev/ref/contrib/comments/#redirecting-after-the-comment-post

此外,这是我正在使用的表格。 comment.types不起作用,但这就是我认为我应该做的 - 为每种评论类型(图片与餐)定义两个不同的下一个输入。

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

然后在膳食&amp;我有的图片页面:

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

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

2 个答案:

答案 0 :(得分:2)

想出来。要使用具有多个对象的next,请使用if语句。

{% if picture %}
<input type="hidden" name="next" value="{% url picture picture.id %}" />
{% endif %}

答案 1 :(得分:0)

如果你想留在同一页面ajax是一个选项,你可以使用类似django_ajaxcomments的东西,在其他方面有很多帖子用ajax做这个。