Holen Sie sich die aktuell verwendete URL, wenn ein auf der Vorlage in django für uns in einem Brotkrümel?

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

Frage

Ich habe eine App, die zwei Zwecken dient - zeigt Mitglieder und Zentren meines Unternehmens. Sie arbeiten beide genau das gleiche, eine andere Variable speichern, wenn mein Modell zu filtern. Das Problem ist, ich nicht die aktuelle URL auf die Schablone bekommen in meiner benutzerdefinierten Paniermehl zu verwenden.


Ich habe dieses URLPATTERN in meinem Haupt 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'),

, von denen Links zu meiner App 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'),
)

auf meiner Vorlage Ich möchte eine Verbindung zu dem ersten urlpatten für die Verwendung mit meiner benutzerdefinierten Paniermehl erstellen

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

oder

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

basierend auf welche URL verwende ich die App mit.

meiner Sicht sieht wie folgt aus:

# ---- 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())

Ich mag die URL finden, basierend auf der which_app Variable in die def geben. Ich kann nicht verwenden resolve() oder reverse() scheint. Ich mache es wahrscheinlich falsch. Ich habe nicht wirklich eine Vorlage bekam zu zeigen.

hat jemand irgendwelche Vorschläge? Ich würde ein paar Ratschläge lieben.

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Sie brauchen nicht eine Funktion zu verwenden. Ihre Ansicht wird das request Objekt übergeben, die ein Attribut path aufweist, ist der Weg, genannt wurde. Siehe die Anfrage docs .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top