2016-03-22 4 views
0

私が作っているIP管理Webアプリケーションに、残りのAPIを追加する方法を探しています。私はAPIが、パラメタの順序にかかわらず、ネットワークに関する情報を持つ複数パラメータのクエリに応答するようにします。同じものを返すためにdjango-rest-framework-urlパターンを非特定の順序でparamsにすることはできますか?

ipmanager.com/api/customer_id/54331/network_category/iscsi 

:私が欲しい

ipmanager.com/api/network_category/iscsi/customer_id/54331 

が、私はこれまで依存しないAPIの位置に引数を作る方法についてのドキュメントを見つけるの運を持っていませんよ。出来ますか?

答えて

2

urls.pyにパラメータを指定しているので、これは不可能です。しかし、おそらくあなたは別の方法で試すことができます。

ipmanager.com/api/?network_category=iscsi&customer_id=54331 

get_querysetメソッドで、このようなパラメータを取得してみてください。あなたのurls.pyファイルで

network_category = request.query_params.get('network_category', None) 
customer_id = request.query_params.get('customer_id', None) 

、あなたのURLパターンにこれを追加します。

url(r'^api/get_customer', views.get_customer, name='get customer'), 

事は、あなたのurls.py.には何も指定する必要はありません、ですパラメータを与えて、あなたの視点から抽出することができます。

私は通常1つのパラメータを取るので、これはうまくいくとは思えませんが、試してみてください。

また、urls.pyであなたのURLを変更することを忘れないでください。あなたがそれを行う方法がわからなければ、私は助けることができます。

+0

確かに、このような任意の投稿データを受け入れるためのURLパターン更新のヒントを教えてください。助けてくれてありがとう。 –

+0

OK回答を更新しました。私が言ったように、あなたはurls.pyのパラメータのために何も指定する必要はありません。 –

0

いいえ、できません。同じビューを指すようにいくつかのURLを定義する必要があります。

関連する問題