Pergunta

im usando o sistema de comentários, agora, eu gostaria de re-escrever a forma segmentar o comentário url e acrescentar um símbolo #, eu quero mover o seccion página para a lista comentário exatamente para o último utilizador comentário com <a name=#{{comment.id}}?> username </a>

Im usando seguinte para redirecionamento do usen quando o comentário foi postado:

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

Mas no Django Doc não dizem nada sobre a reescrita ou personalizador do comentário redirecionamento / url

Qualquer idéia?

Graças

Foi útil?

Solução

Eu só tropeçou em toda esta pouco de feiúra. Depois de ler o código fonte que eu não vi nenhuma boa maneira de substituir esse comportamento. Por padrão, você será redirecionado para a URL na variável {{ next }} do modelo e Django adiciona uma ?c=1 para a URL onde o 1 é o ID do comentário. Eu queria que isso seja, em vez #c1 para que o usuário está pulou a página para o comentário que só postou. Eu fiz isso com um pouco de "patching macaco" da seguinte forma:

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top