質問

コメントシステムを使用して

イムは、今、私は再書き込みセグメントがURLコメントを形成し、シンボル#を追加したいと思い、私は正確に<a name=#{{comment.id}}?> username </a>との最後のコメントのユーザーにコメントのリストにページseccionを移動します

イムコメントが投稿された際にUSENをリダイレクトするために、次を使用します:

{% get_comment_form for object as form %}
<form action="{% comment_form_target %}" method="POST">
  {{ form }}
  <input type="hidden" name="next" value="{{ object.get_absolute_url }}" />
  <input type="submit" name="preview" class="submit-post" value="Preview"></td>  
</form>

しかし、Djangoのドキュメントには、

書き換えについては何も言っていない、またはコメントリダイレクト/ URLをカスタマイザーいけません

任意のアイデア?

おかげ

役に立ちましたか?

解決

私は醜さのこの少しに出くわし。ソースコードを読んだ後、私はこの動作をオーバーライドする任意の良い方法を見ていません。デフォルトでは、テンプレートの{{ next }}変数にURLにリダイレクトされ、Djangoは?c=1コメントのIDでURLに1を追加します。私は、ユーザーが、彼らは単に投稿コメントにページを飛び降りているので、これは代わりに#c1ことがしたかったです。次のように私は、「猿のパッチ適用」を少しでこれをやった。

from django.contrib.comments.views import utils
from django.core import urlresolvers
from django.http import HttpResponseRedirect

def next_redirect(data, default, default_view, **get_kwargs):
    next = data.get("next", default)
    if next is None:
        next = urlresolvers.reverse(default_view)
    if get_kwargs:
        next += '#c%d' % (get_kwargs['c'],)
    return HttpResponseRedirect(next)

# Monkey patch
utils.next_redirect = next_redirect
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top