2014-12-05 2 views
8

Ho un modello Post che richiede una determinata categoria prima di essere aggiunto al database e voglio che la categoria sia generata automaticamente. Facendo clic sul pulsante addPost si passa a una pagina diversa e quindi la categoria verrà determinata prendendo una parte dell'URL della pagina precedente.Django: ottenere l'url precedente

C'è un modo per ottenere l'url della pagina precedente come stringa?

Grazie

Edit: ho aggiunto il mio tasto AddPost qui.

<aside class="addPost"> 
     <article> 
      <form action="/Forum/addPost"> 
        <input type="submit" name="submit" value="Add Post"/> 
      </form> 
     </article> 
</aside> 

risposta

7

è possibile ottenere l'URL di riferimento utilizzando request.META.HTTP_REFERER

Maggiori informazioni qui: https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.META

+0

Scuse, non ho ben seguo come funziona. Potresti spiegare? Se potessi recuperare l'URL in questo modo, mi permetterebbe di trattarlo come stringa di testo? – tryingtolearn

+3

durante il tentativo di utilizzare request.META.HTTP_REFERER Viene visualizzato un errore che dice che l'oggetto dict non ha attributo HTTP_REFERER. – tryingtolearn

1

Un molto più affidabile metodo sarebbe quello di passare esplicitamente la categoria nel URL del pulsante Aggiungi Post.

+0

Mi dispiace, potresti elaborare? Sono un newbie definito a questo. – tryingtolearn

10

È possibile farlo utilizzando self.request.META['HTTP_REFERER'], ma esso esiste se solo la pagina precedente della scheda era dal tuo sito Web, altrimenti non ci sarà HTTP_REFERER in META dict. Quindi fai attenzione e assicurati di utilizzare la notazione .get().

# Returns None if user came from another website 
referer = self.request.META.get('HTTP_REFERER') 
+0

nome 'self' non è definito? –

3

non posso rispondere commenti @tryingtolearn, ma per le persone future, è possibile utilizzare request.META['HTTP_REFERER']

Problemi correlati