django反向URL不匹配

时间:2015-02-01 18:10:11

标签: python django python-3.x

我反向映射网址并收到错误消息。但我必须误解某些东西,因为它所说的并不正确,这正是我想要实现的目标(除了关于它不正确的部分)。

以下是错误消息,我在此处添加了几个可读性新行:

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

1 个答案:

答案 0 :(得分:2)

模式的名称必须在里面 parens:

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'),