0

私はPythonとDjangoに非常に慣れていません。私はDjango - 1.4.5を使用しています。フォームからユーザー入力を取得しようとしています。次のようなユーザー入力でURLをリダイレクトします

Httpresponseredirect('abc/xyz/%s' %variable)

ブラウザーで応答がリダイレクトされていることを確認できましたが、404 エラーがスローされます。urls.pyにもurl定義があります。

urls.py

urlpatterns = pattern('',
   url (r'abc/xyz/(?P<variable>)/pqr' , 'view_name')
)

それに光を当ててください。


reverseさらにデバッグすると、問題は引数を関数に渡すことにあることがわかりました。引数なしで静的ページを渡すと、正しいビューにリダイレクトされます。しかし、引数を指定してリダイレクトすると、NoreverseMatchエラーが発生します。このようにリダイレクトしています

return HttpResponseRedirect(reverse('view_name', kwargs= {'group':'group'}))                                      

urls.pyでは、次のように定義されています。

url (r'app/$' , 'app.view.app') ,         
url (r'^my/first/(?P<group>)/$ , 'app.webapi.json.list_record', name ='view_name;),

list_recordapp.webapi.json.pyの関数です。

さらに詳細が必要な場合はお知らせください。

4

2 に答える 2

1

ビューのユーザーリバース機能、最初に URL 名を追加します。

Httpresponseredirect(reverse('my_view_name', args=[variable]))

そして(@sushailが言ったように)正規表現を修正します:

urlpatterns = pattern('',
   url (r'^abc/xyz/(?P<variable>)/pqr/$' , 'view_name', name='my_view_name')
)
于 2013-06-24T12:13:47.017 に答える
0

正規表現が abc/xyz/..../pqr に一致するため、完全なパスを使用する必要があります

Httpresponseredirect('/abc/xyz/%s/pqr/' %variable)

など(@laloが言ったように)

urlpatterns = pattern('',
   url (r'^abc/xyz/(?P<variable>)/pqr/$' , 'view_name')
)

/最初と最後で確認してください。何ですかview_name。プロジェクト ディレクトリにそのようなビューが必要なようです。または、urlpatterns に apppath を追加する必要があります。

`urlpatterns = pattern('<yourappname>.views',`
于 2013-06-24T12:01:53.737 に答える