2010-04-09 3 views
2

Je n'arrive pas à effectuer une recherche d'URL inverse pour les flux générés par Django.Django: URL de recherche inversée des flux?

J'ai la configuration suivante urls.py:

feeds = { 
    'latest': LatestEntries, 
} 

urlpatterns = patterns('', 
    # ... 
    # enable feeds (RSS) 
    url(r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', 
     {'feed_dict': feeds}, name='feeds_view'), 
) 

J'ai essayé d'utiliser la balise modèle suivant:

<a href="{% url feeds_view latest %}">RSS feeds</a> 

Mais le lien qui en résulte est pas ce que veulent (http://my.domain.com/feeds//). Il devrait être http://my.domain.com/feeds/latest/.

Pour l'instant, je me sers d'un hack pour générer l'URL pour le modèle:

<a href="http://{{ request.META.HTTP_HOST }}/feeds/latest">RSS feeds</a> 

Mais, comme vous pouvez le voir, il est clairement pas DRY. Y a-t-il quelque chose qui me manque?

Répondre

1

Vous utilisez des arguments de mots clés vous devriez donc les passer en tant que tel :) Essayez ceci:

<a href="{% url feeds_view url="latest" %}">RSS feeds</a> 
3

Malheureusement, l'URL d'inversion est pas vraiment possible avec le cadre d'alimentation en courant. La bonne nouvelle est que le framework de flux a été complètement refaçonné et peut s'intégrer parfaitement aux mécanismes de résolution d'URL de Django. Ce framework de flux refactorisé sera livré avec Django 1.2, qui devrait arriver au end of April. Vous pouvez lire à ce sujet dans le docs ou dans un great article par Rob Hudson sur DjangoAdvent.

+0

Grand article. Merci. La suggestion ci-dessous fonctionne, cependant. – Santa