django 反向 URL 不匹配

django reverse URL not matching

我正在反向映射 URL 并遇到错误。但我一定是误解了什么,因为它说的不对正是我想实现的(除了不对的部分)。

这是错误消息,为了便于阅读,我在其中添加了几个换行符:

NoReverseMatch at /k/trip/search

Reverse for 'trip/save'
with arguments '()'
and keyword arguments
  '{'when': '2015-02-01',
  'from_city': 'nantes',
  'to_city': 'paris'}'
not found. 1 pattern(s) tried:
  ['k/trip/save/?P<when>(\d{4}-\d{2}-\d{2})/?P<from_city>([a-zA-Z ]+)/?P<to_city>([a-zA-Z ]+)/']

为了完整起见,url.py 行是这样的:

url(r'^save/?P<when>(\d{4}-\d{2}-\d{2})/?P<from_city>([a-zA-Z ]+)/?P<to_city>([a-zA-Z ]+)/',
  kernel.views.TripSaveView.as_view(),
  name='trip/save'),

reverse 行是这样的:

return redirect(reverse('trip/save',
  kwargs={
  'when': trip_form['departure_date'].value(),
  'from_city': trip_form['from_city'].value(),
  'to_city': trip_form['to_city'].value()}))

模式名称必须括号内:

url(r'^save/(?P<when>\d{4}-\d{2}-\d{2})/(?P<from_city>[a-zA-Z ]+)/(?P<to_city>[a-zA-Z ]+)/',
  kernel.views.TripSaveView.as_view(),
  name='trip/save'),