Obtenez l'URL actuellement utilisé lorsqu'un sur le modèle de django pour nous dans un fil d'Ariane?

StackOverflow https://stackoverflow.com/questions/4700660

Question

J'ai une application qui sert deux objectifs - affiche les membres et les centres de mon entreprise. Ils travaillent tous les deux exactement la même chose, sauf une autre variable lors du filtrage mon modèle. Le problème est que je ne peux pas obtenir l'URL en cours sur le modèle à utiliser dans mes miettes de pain personnalisés.


J'ai cette URLPATTERN dans ma principale urls.py:

# --- urls.py ---- 
url(r'^find-member/', include('company.directory.urls'), \
        {'which_app': 'members'}, name='find_member'),
url(r'^find-centre/', include('company.directory.urls'), \
        {'which_app': 'training'}, name='find_centre'),

dont des liens vers mon application urls.py:

# ---- company/urls.py ----
from django.conf.urls.defaults import *
urlpatterns = patterns('company.directory.views',
    url(r'^$', 'index'),
    url(r'^(?P<slug>\w+)/$', 'index'),
)

sur mon modèle, je souhaite créer un lien vers la première urlpatten pour une utilisation avec mes miettes de pain personnalisées

<a href='/find-member/'>members</a>

ou

<a href='/find-centre/'>Centre</a> 

basé sur l'URL que je utilise l'application avec.

mes regards de vue comme ceci:

# ---- company/view.py ----
def index(request, which_app=None, slug=None):
    #r = reverse('' ,kwargs={'which_app'=training )
    s = "%s %s" % (which_app, slug)

    return render_to_response('directory/index.html', locals())

Je voudrais trouver l'URL en fonction de la variable which_app passé dans la définition. Je ne peux pas sembler utiliser resolve() ou reverse(). Je fais probablement mal. Je ne l'ai pas vraiment obtenu un modèle pour montrer en ce moment.

Quelqu'un at-il des suggestions? J'aimerais quelques conseils.

Merci à l'avance.

Était-ce utile?

La solution

Vous n'avez pas besoin d'utiliser une fonction. Votre point de vue est passé l'objet request, qui a une path d'attribut qui est le chemin qui a été appelé. Voir la demande docs .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top