Domanda

Nei modelli di Django, esiste una variabile nel contesto (ad es. {{ BASE\_URL }}, {{ ROOT\_URL }} o {{ MEDIA\_URL }} che è possibile utilizzare per collegarsi all'URL home di un progetto?

vale a dire. se Django è in esecuzione nella radice di un progetto, la variabile (chiamiamola R) {{ R }} in un modello sarebbe /. Se l'URL radice è una sottocartella http://host/X/ la variabile /X/ sarebbe <=> (o <=>).

Sembra dolorosamente semplice, ma non riesco a trovare una risposta. :) Grazie!

È stato utile?

Soluzione

Potresti dare alla configurazione dell'URL che stai usando per gestire un nome nella home page e usarlo:

urls.py:

from django.conf.urls.defaults import *

urlpatterns = patterns('myproject.views',
    url(r'^$', 'index', name='index'),
)

Modelli:

<a href="{% url index %}">...

AGGIORNAMENTO: Le versioni più recenti di Django richiedono virgolette attorno al nome della vista:

<a href="{% url 'index' %}">...

Questa nota nel Django Book contiene alcuni suggerimenti su come distribuire le tue applicazioni in una sottodirectory:

http://www.djangobook.com/en/1.0/chapter20/ # CN43

Altri suggerimenti

Uso sempre qualcosa come <a href="/"> (supponendo che la tua casa sia alla radice, ovviamente). Mi sembra di averlo cercato una volta, e non sono riuscito a trovare una variabile Django per questo percorso; in ogni caso, / sembrava abbastanza facile, comunque.

Nel tuo amministratore, vai su " siti " e imposta il dominio.

Passa context_instance=RequestContext(request) ai modelli in questione.

Ora usa {{ SITE_URL }} in uno di quei modelli e sei d'oro.

Il capitolo 10 del Django Book contiene più informazioni di quelle necessarie registrando quel bit del processore di contesto.

(r'^$', 'django.views.generic.simple.redirect_to', {'url': '/home/'}),

funziona bene :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top