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

テンプレート内の次の変数をチェックする必要はないかもしれません。変更してみてください:

{% 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 に答える
1

axel22の回答の問題は、コメントフォームを必要とする各テンプレートを変更する必要があることです。コメントできるオブジェクトタイプが複数ある場合、これはDRYではありません。

残念ながら、私はまだうまくいく答えを探しています。

于 2012-07-19T23:36:14.490 に答える
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:コメント投稿後に現在の記事にリダイレクトする

基本的に、元のリファラーページにリダイレクトするコメント投稿URLによってトリガーされるビューを使用します。

于 2014-06-13T16:46:05.090 に答える