4

我正在尝试将用户重定向回发布评论的页面。我在 Django 的网站上找到了这篇文章,但我做错了,因为它不会重定向回来。

输入应该放在哪里才能正确重定向?

{% load comments i18n %}
<form action="{% comment_form_target %}" method="post">{% csrf_token %}
  {% if next %}<input type="hidden" name="next" value="{{ next }}" />{% endif %}
  {% for field in form %}
    {% if field.is_hidden %}
      {{ field }}
    {% else %}
      {% if field.errors %}{{ field.errors }}{% endif %}
            <input type="hidden" name="next" value="{% url proposal proposal.id %}" />
      <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><input type="submit" name="post" value="{% trans "Send" %}" /></button> -->
        <button type="submit">Send</button>
    <!-- <input type="submit" name="preview" class="submit-preview" value="{% trans "Preview" %}" /> -->
  </p>
</form>
4

4 回答 4

1

axel22 的答案的问题在于,它需要对每个需要评论表单的模板进行更改——如果您有多个可以评论的对象类型,这不是 DRY。

不幸的是,我还在寻找一个有效的答案。

于 2012-07-19T23:36:14.490 回答
1

也许您不需要检查模板中的下一个变量。您可以尝试更改:

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

只是:

<input type="hidden" name="next" value="/added/comment/page/" />

如果您使用views.py,从那里重定向似乎更明显,至少对我而言,因为它有助于让关注点远离模板:

from django.http import HttpResponseRedirect
HttpResponseRedirect("/path/to/redirect")
于 2011-03-02T15:42:51.650 回答
0

如果您{% render_comment_form for object %}在模板中使用标签,只需添加类似的东西或用...结构{% url object's_named_view object.id as next %}包装它。{% with object.get_absolute_url as next %}{% endwith %}

于 2011-07-02T23:47:54.197 回答
0

在此处查看我的解决方案:Django:在发表评论后重定向到当前文章

它基本上使用由评论帖子网址触发的视图,该网址重定向回原始引荐来源页面。

于 2014-06-13T16:46:05.090 回答