[解決済み] Django で、同じパラメータに複数の変数を持つ request.GET を扱うにはどうしたらいいでしょうか?
質問
Django のビューで
request.GET['variablename']
にアクセスできるので、ビューでは次のようなことができます。
myvar = request.GET['myvar']
実際の
request.GET['myvar']
オブジェクトの型は
<class 'django.http.QueryDict'>
さて、同じパラメータ名で複数の変数を渡したい場合、すなわち
http://example.com/blah/?myvar=123&myvar=567
あなたはパイソンが好きです
list
に対して返されるパラメータ
myvar
を返したら、次のような処理をします。
for var in request.GET['myvar']:
print(var)
しかし、これを試すと、URL で渡された最後の値しか得られません。つまり、上記の例では、次のようになります。 567 となり、シェルの結果はこうなります。
5
6
7
しかし
request.GET
を持つようです。
list
すなわち
<QueryDict: {u'myvar': [u'123', u'567']}>
OK 更新しました。 これは最後の値を返すように設計されていますが、私のユースケースはリストが必要です。
を django のドキュメントから引用しました。
クエリディクトです。 getitem (キー) を返す。 与えられたキーの値。もし が複数の値を持っている場合は getitem () は最後の値を返します。発生するエラー django.utils.datastructures.MultiValueDictKeyError を発生させます。 を発生させます。(これは のサブクラスです。 KeyError のサブクラスです。 KeyError
QueryDict.getlist(key) リクエストされたキーを持つデータを 要求されたキーを持つデータを Pythonのリストです。キーが存在しない場合は、空のリストを返します。 を返します。何らかのリストを返すことが保証されています。 は何らかのリストを返すことが保証されています。
更新しました。 リストを表示するのは直感に反しているようで、そのように動作しません。Pythonic っぽくない!
どのように解決するのですか?
あなたは getlist() 関数が必要です。
request.GET.getlist('myvar')
関連
-
Django QuerySet マルチテーブル結合/条件付きピッキング/マージ
-
[解決済み] QuerySetで空白またはNULLの名前をフィルタリングする方法は?
-
[解決済み] Django のカスタムフィールドで User モデルを拡張する
-
[解決済み] Django で完全な/絶対的な URL (ドメイン付き) を取得するにはどうすればよいですか?
-
[解決済み] FastCGIとDjangoを使用しているnginxのエラーログはどこで見ることができますか?
-
[解決済み】Djangoで1ページで複数のフォームを扱う適切な方法
-
[解決済み] Django は単一のモデルに対してデータをダンプしますか?
-
[解決済み] Djangoのクッキー、どうすれば設定できますか?
-
[解決済み] Django: Django のアプリを完全にアンインストールするには?
-
[解決済み] Django の DoesNotExist 例外はどのようにインポートしますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Django2.2エラー - AttributeError: ''str'' オブジェクトに ''decode'' 属性がない。
-
ImproperlyConfiguredです。INSTALLED_APPS の設定を要求されたが、設定されていない
-
[解決済み] Djangoでファイルをアップロードする方法は?[クローズド]。
-
[解決済み] [Solved] カスタムDjango manage.pyコマンドをテストドライバから直接呼び出すにはどうしたらいいですか?
-
[解決済み】Djangoでモデルインスタンスをシリアライズする方法は?
-
[解決済み] Django の修正 管理者の複数形
-
[解決済み] Django REST Framework: ModelSerializerに追加フィールドを追加する
-
[解決済み] Docker-Compose使用時にDjangoデータベースのマイグレーションをどのように行うか?
-
[解決済み] Django - 外部キーのプロパティでフィルタリングする
-
[解決済み] テーブルのフィールドから異なる値を選択する