2

エラーを取得していますReverse for 'view_part' with arguments '()' and keyword arguments '{'part_id': u'54'}' not found

URLS.PY

url(r'^(\d+)/(\d+)/convert/$', 'store.views.changetool', name = "convert"),
url(r'^(\d+)/view_part/$','store.views.view_part',name="view_part"),

VIEWS.PY ( changetool)

def changetool (request, id, unipart=None):
    part = Part.objects.get(id=id)
    file = str (part.content)
    newfile = FormatConversion.ConvertToNew(file)
    return redirect('view_part', part_id = unipart)

VIEWS.PY ( view_part)

def view_part(request, part_id, newfile = None):
...
4

1 に答える 1

4

あなたがするreturn redirect('view_part', part_id = unipart)必要がありますreturn redirect('view_part', unipart)

ここを参照してください:

ビューの名前と、オプションでいくつかの位置引数またはキーワード引数を渡す。URL は reverse() メソッドを使用して逆方向に解決されます。

編集

Ok。reverse()関数では、URL に送信したくない別の kwargs を使用できるため、位置引数 ( )をreverse('some_ulr_name', args=[1945]'args' kwarg に、キーワード引数 ( ) を 'kwargs' kwarg に渡す必要があります。reverse('some_url_view', kwargs={'year': 1945})

しかし、redirec()を使用すると、すべての引数と kwargs が逆メソッドに送信されます。

いくつかの例:

redirect("view_part", unipart) 
# Will do a 
HttpResponseRedirect( reverse("view_part", args=[unipart]) )

#and a 
redirect("view_part", part_id=unipart)
#will do a
HttpResponseRedirect( reverse("view_part", kwargs={'part_id':unipart}) )

URLに名前がないため、最後のオプションは失敗します。ここを参照して、URLパラメーターに名前を追加してください

于 2013-07-03T15:18:55.867 に答える