Domanda

im utilizzando il sistema di commento, ora, vorrei riscrivere il segmento formare il commento URL e accodare un simbolo #, voglio spostare la pagina seccion all'elenco commento esattamente l'ultimo commento utente con <a name=#{{comment.id}}?> username </a>

Im usando successivo per reindirizzare l'usen quando il commento è stato postato:

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

Ma nel Django doc non dice nulla di riscrittura o Customizer il commento di reindirizzamento / url

Qualche idea?

Grazie

È stato utile?

Soluzione

Ho appena imbattuto in questo po 'di bruttezza. Dopo aver letto il codice sorgente non ho visto alcun bel modo per ignorare questo comportamento. Per impostazione predefinita, si viene reindirizzati alla URL nel variabili {{ next }} del modello e Django aggiunge un ?c=1 per l'URL in cui il 1 è l'ID del commento. Ho voluto questo per essere invece #c1 modo che l'utente è saltato in basso nella pagina per il commento che hanno appena pubblicato. Ho fatto questo con un po 'di "patching scimmia" come segue:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top