How can I get the reverse url for a Django Flatpages template
I prefer the following solution (require Django >= 1.0).
settings.py
INSTALLED_APPS+= ('django.contrib.flatpages',)
urls.py
urlpatterns+= patterns('django.contrib.flatpages.views', url(r'^about-us/$', 'flatpage', {'url': '/about-us/'}, name='about'), url(r'^license/$', 'flatpage', {'url': '/license/'}, name='license'), )
[...] <a href="{% url about %}"><span>{% trans "About us" %}</span></a> <a href="{% url license %}"><span>{% trans "Licensing" %}</span></a> [...]
from django.core.urlresolvers import reverse [...] reverse('license') [...]
That way you don't need to use django.contrib.flatpages.middleware.FlatpageFallbackMiddleware
and the reverse works as usual without writing so much code as in the other solutions.
Cheers.
Include flatpages in your root urlconf:
from django.conf.urls.defaults import * urlpatterns = patterns('', ('^pages/', include('django.contrib.flatpages.urls')), )
Then, in your view you can call reverse like so:
from django.core.urlresolvers import reverse reverse('django.contrib.flatpages.views.flatpage', kwargs={'url': '/about-us/'}) # Gives: /pages/about-us/
In templates, use the {% url %} tag (which calls reverse internally):
<a href='{% url django.contrib.flatpages.views.flatpage url="/about-us/" %}'>About Us</a>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With