我无法弄清楚我正在搞哪个部分!
我得到的错误是:
使用参数'()'和关键字参数反转'update_rating' '{u'pk':9,u'on_title':True}'找不到。尝试过1种模式: [ 'Y / update_rating / - /(P [\ W] +?)(P [真?|假])$']
url.py:(第一个是争用中的那个)
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),
]
thing_page.html 的
{% url 'update_rating' pk=thing.pk on_title=True %}
来自 views.py 的视图功能:
def update_rating(request, pk=None, on_title=False):
我对处理网址的整个方式感到很困惑,所以除了解决我的问题外,如果您对处理网址有任何进一步的建议,请不要犹豫,将其添加到您的答案中:)
答案 0 :(得分:1)
此模式存在问题:
url('^update_rating/(?P<pk>[\w-]+)/(?P<on_title>[True|False])$', views.update_rating, name='update_rating')
您将错误的正则表达式传递给变量,pk
必须匹配整数,因此\d+
和布尔值必须匹配单词\w+
url('^update_rating/(?P<pk>\d+)/(?P<on_title>\w+)/$', views.update_rating, name='update_rating')