2011-12-21 18 views
8

Właśnie zacząłem uczyć się Pythona i Django i mam pytanie. Mam zadanie, aby włączyć widoki funkcji do widoków opartych na klasach. Ale moje linki nie będą działać.Adres zwrotny Django z parametrami do widoku opartego na klasach

są z urls.py:

url(r'^$', ContactIndex.as_view()), 
url(r'^add$', ContactAdd.as_view()), 
url(r'^([0-9]+)/update$', ContactUpdate.as_view()), 
url(r'^([0-9]+)/view$', ContactView.as_view()), 

To jest mój związek:

{% url rtr_contact.views.ContactView contact.id %} 

ale ta praca robi to mówi:

Caught NoReverseMatch while rendering: Reverse for 'rtr_contact.views.ContactView' with arguments '(20L,)' and keyword arguments '{}' not found. 
+1

Należy sufiks wzorców URL z ukośnikiem. Jest to standard w Django, który ułatwia innym programom pracę z nim (bez wchodzenia w szczegóły ...) – jpic

Odpowiedz

17

Aby url cofania łatwe, Polecam zawsze: name your url patterns.

url(r'^$', ContactIndex.as_view(), name="contact_index"), 
url(r'^add$', ContactAdd.as_view(), name="contact_add"), 
url(r'^([0-9]+)/update$', ContactUpdate.as_view(), name="contact_update"), 
url(r'^([0-9]+)/view$', ContactView.as_view(), name="contact_view"), 

Następnie w szablonie:

{% url contact_view contact.id %} 
+1

Dziękuję, zadziałało. Chciałbym, żeby dokumentacja django była łatwiejsza. – user769498

+2

Myślę, że ogólnie dokumentacja Django jest doskonała. Sekcja dotycząca widoków opartych na klasach jest nieco nieosiągalna, ale mam nadzieję, że w przyszłości zostanie rozwiązana. – Alasdair

+2

To jest przyszłość i wciąż brakuje klasycznych dokumentów poglądowych. Dziękuję za odpowiedź - pomogło mi to również. – tatlar

Powiązane problemy