2016-07-12 14 views
0

Ich kann nicht herausfinden, welchen Teil ich muck up!Wie bekomme ich Django Multi-Argument-URL-Tags arbeiten?

Der Fehler Ich erhalte ist:

umge für 'update_rating' mit Argumenten '()' und Keyword-Argumente '{u'pk': 9, u'on_title ': True}' nicht gefunden. 1 Muster (n) versucht: [ 'y/update_rating/-/| $ (P [\ w] +?) (P [True False]?)']

url.py: (die erste ist die, in Conten)

urlpatterns = [ 
    # Must be last url pattern, otherwise everything /y/ will use this pattern 
    url('^update_rating/(?P<pk>[\w-]+)/(?P<on_title>[True|False])$', views.update_rating, name='update_rating'), 
    url('^add_thing_with_rating/(?P<parent_pk>[\w-]+)$', views.add_thing_with_rating, name='add_thing_with_rating'), 
    url('^add_thing_with_rating/', views.add_thing_with_rating, name='add_thing_with_rating'), 
    url(r'^(?P<slug>[a-zA-Z0-9-\/]+)/?', views.thing_page), 
] 

das HTML-Tag aus thing_page.html:

{% url 'update_rating' pk=thing.pk on_title=True %} 

die Ansicht Funktion von views.py:

def update_rating(request, pk=None, on_title=False): 

Ich bin ganz durch diese ganze Art und Weise der Umgang mit URLs, so dass zusätzlich zu der Lösung meines Problems verwirrt, wenn Sie weitere Beratung haben URLs über den Umgang mit zögern Sie nicht, dass Ihre Antwort hinzuzufügen:

) mit diesem Muster

Antwort

1

Problem:

url('^update_rating/(?P<pk>[\w-]+)/(?P<on_title>[True|False])$', views.update_rating, name='update_rating') 

Sie bestanden falsch regexp zu Variablen, pk müssen ganze Zahlen entsprechen so \d+ und booleans müssen Worte passen \w+

url('^update_rating/(?P<pk>\d+)/(?P<on_title>\w+)/$', views.update_rating, name='update_rating')