Come si inserisce un collegamento / URL nella home page del sito Web in Django?
-
03-07-2019 - |
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!
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:
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 :)