4

Django 1.5 を使用しており、URL に引数を渡そうとしています。最初の 2 つの引数を使用すると、以下のコードは正常に動作しますが、3 番目の引数を使用するとエラーが発生します。新しい Django 1.5 アップデートのurl使用法については既に言及したので、それに応じて URL 名に引用符を使用しました。

NoReverseMatch: Reverse for 'add_trip' with arguments '()' and keyword arguments '{u'city': 537, u'score': 537, u'time': 35703, u'distance': 1196.61}' not found

urls.py

url(
    r'^add/(?P<city>\w+)/(?P<score>\w+)/(?P<distance>\w+)/(?P<time>\w+)$',
    'trips.views.add_trip',
    name='add_trip'
),

htmlファイル

<a href="{% url "add_trip" city=data.city score=data.score distance=data.distance time=data.time%}">Add/delete</a>

2 つの引数 (都市とスコアなど) のみを使用すると、問題なく動作します。そうしないと、逆一致エラーが発生します。

ビュー.py

def SearchTrips(request):
    city = request.POST['city'].replace(" ","%20")
    location = request.POST['location'].replace(" ","%20")
    duration = request.POST['duration']
    #url = "http://blankket-mk8te7kbzv.elasticbeanstalk.com/getroutes?city=%s&location=%s&duration=%s" % (city, location, duration)
    url= "http://blankket-mk8te7kbzv.elasticbeanstalk.com/getroutes?city=New%20York%20City&location=Park%20Avenue&duration=10"
    print url

    try:
        resp = urllib2.urlopen(url)
    except:
        resp = None

    if resp:
        datas = json.load(resp)
    else:
        datas = None

    return render(request, 'searchtrips.html', {'datas': datas})
4

1 に答える 1

0

1196.61小数点のため、距離値は正規表現と一致しません。

使用できます

(?P<distance>[\w\.]+)

大文字の AZ、小文字の az、0 ~ 9 の数字、ハイフン、および小数点に一致します。

または、使用することもできます

(?P<distance>[\d\.]+)

0 ~ 9 の数字と小数点のみに一致します。

于 2013-08-06T00:40:22.850 に答える