1

我在我网站的两个地方使用了 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>

然后在 Meal & Picture 页面上,我有:

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

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

2 回答 2

2

弄清楚了。要将 next 用于多个对象,请使用 if 语句。

{% if picture %}
<input type="hidden" name="next" value="{% url picture picture.id %}" />
{% endif %}
于 2011-03-07T21:21:07.097 回答
0

如果你想留在同一个页面上,ajax 是一个选项,你可以使用类似django_ajaxcomments的东西,有很多关于其他方法的文章使用 ajax 来做到这一点。

于 2011-03-07T16:36:22.493 回答