Pregunta

im utilizando el sistema de comentarios, ahora, me gustaría volver a escribir el segmento forman el comentario URL y anexar un símbolo #, quiero mover la seccion página a la lista de comentarios exactamente al último comentario de usuario con <a name=#{{comment.id}}?> username </a>

Im usar para redirigir la próxima us cuando el comentario fue publicada:

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

Sin embargo, en el Doc Django no dicen nada acerca de reescritura o CUSTOMIZER el comentario de redirección / url

¿Alguna idea?

Gracias

¿Fue útil?

Solución

Yo sólo encontré con este poco de la fealdad. Después de leer el código fuente no vi ninguna buena manera de anular este comportamiento. Por defecto se le redirige a la URL en la variable {{ next }} de la plantilla y Django anexa una ?c=1 a la URL en la que 1 es el ID del comentario. Yo quería que esto fuera #c1 vez que el usuario se saltó la página al comentario que acaba de publicar. Hice esto con un poco de "parches mono" de la siguiente manera:

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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top