Django Kommentar anhängen Symbol an die URL Kommentar?
-
12-09-2019 - |
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
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