2012-02-01 12 views
0

私はいくつかのムービーデータを表示するビューを持っています。私は、映画ID 1234を検索するために、movie-id/1234のようなURLをビューで処理することをお勧めしたいと考えていました。さらに、IDをフォームに入力してサーバーに送信して検索することができます。これを行うには、以下に示すurls.pyファイルに2番目のエントリを作成しました。GETデータを処理し、URLを解析するビューのdjangoでURLを整理する方法は?

urlpatterns = patterns('', 
    url(r'movie-id/(?P<movie_id>.+?)/$', 'movieMan.views.detailMovie'), 
    url(r'movie-id/$', 'movieMan.views.detailMovie', name='movieMan.detailMovie.post'), 
) 

私はどちらかのURLやGETやPOSTリクエストを経由して、私のビューにデータを渡したいのであれば、私は2つのURLを入力する必要以上のエレガントな方法はありますか?ビューのコードでは、着信要求にGETデータがあるかどうかを確認しています。

{% url movieMan.detailMovie.post %}構文を使用してビューのURLを指定するテンプレートエンジンで2番目のURLを使用できるようにするには、この2つを区別するためにこのURLにname属性を導入する必要がありました。

私はここで複雑すぎると思っているのか分かりません。私は今、最初のURLエントリが何のために良いのか自分に尋ねていますか?映画のURLを直接取得する方法はありますか?このような種類のURLはいつ再生され、テンプレートでどのように生成されますか?

答えて

2

さらに、IDをフォームに入力して をサーバーに送信して検索することができます。

これは実際の検索ですか。 IDを知っていてIDがURLの一部である場合、ユーザーがIDに書き込むことができるテキストボックスを持つだけで、javascriptを「正しい」URLにリダイレクトすることができます。 IDが存在しない場合、ビューはHttp404を返します。

実際の検索、つまりクエリ文字列を送信しているユーザーの場合は、何らかのリスト/結果ビューが必要です。この場合、特定の結果へのリンクがすべて生成されます。必ず正しい。

+0

次に、通常の

要素に加えて、データを送信するために、常にJavascriptが必要になります。さて、jQueryではケーキのようになります。しかし、私は本当に最終的にID付きの素敵なURLが良いのか分かりません。 – GorillaPatch

+0

IDを持つurlはリソースを一意に識別します。あなたの場合は映画。あなたがどこかで本物の検索をするならば、それぞれのユニークな結果を参照することができます。 re:javascript:はい、ユーザーが** id **を送信しているためです。あなたは実際にフォームを必要とせず、確かにサーバーにデータを送信するものではなく、入力フィールドの内容からリンクするjavascriptだけです。 – beerbajay

+0

ムービーの詳細へのリンクであるムービーのリストがあるとしましょう。どのようにURLを生成しますか?このように: '{%url movieMan.views.detailMovie movie.id%}' 'movie'はムービーオブジェクトを表します。 – GorillaPatch

0

もっとエレガントな方法はないと思います。

私はほとんど同じものでした:

url(r'^movies/search/((?P<query_string>[^/]+)/)?$', 'mediadb.views.search_movies'), 

URLパターンは、検索パラメータの有無にかかわらずURLを一致します。 ビュー機能では、パラメータがURLまたはクエリ文字列で定義されているかどうかを確認する必要があります。

関連する問題