Frage

im Kommentar-System, jetzt würde Ich mag das Segment neu schreiben die URL Kommentar bilden und ein Symbol # anhängen, ich möchte genau die Seite seccion auf die Kommentarliste bewegen, mit <a name=#{{comment.id}}?> username </a> zur letzten Kommentar Benutzer

Im mit als nächstes für die usen umleiten, wenn der Kommentar gepostet:

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

Aber in der Django Doc nicht nichts über Rewrite sagen oder den Kommentar Redirect / url Customizer

Jede Idee?

Danke

War es hilfreich?

Lösung

Ich stolperte über diese wenig Hässlichkeit. Nach der Quellcode lesen sah ich keine schöne Möglichkeit, dieses Verhalten zu überschreiben. Standardmäßig sind Sie in der Vorlage {{ next }} Variable auf die URL umgeleitet und Django fügt einen ?c=1 auf die URL, wo der 1 die ID des Kommentars ist. Ich wollte diese stattdessen #c1 werden, damit der Benutzer die Seite mit dem Kommentar gesprungen wird nach unten sie gerade gebucht. Ich tat dies mit ein wenig „Affe Patchen“ wie folgt:

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top