質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

800閲覧

DjangoでPOST値について

koba-nori

総合スコア5

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/03/23 11:18

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
DjangoでPOSTするページを作成しています。
複数の区分けされたテキストボックスをりようしていてPOSTするとform-0-id、form-1-id
みたいな形になってしまい、POSTで中身がきたときに判別することができません。

発生している問題・エラーメッセージ

区分けしている部分には一つ一つ送信ボタンがあるので押下されたときにPOSTされてくるのはひとつなのですが、form-0-idなのかform-12-idなのかがわからないためそのvalueが取得できません。

該当のソースコード

python

1def test-post(request): 2 logger.warning(request.POST) 3 4<QueryDict: {'form-0-name': ['1'], 'form-0-summary': ['111'],'form-0-id': ['111']

試したこと

文字検索などいろいろやったのですがform-0-idみたいに数字が一桁なら前の7文字削除してidという文字だけ残して取得するみたいなことを考えたのですが数字が二けたになると破綻してしまいます。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

実際にQueryDictの中身を自身で未確認で恐縮なのですが、
テキストボックスにはnameやidの指定はしていないのでしょうか?
POSTの中身のkeyが「form-0-id, form-1-id, form-2-id, ...」と数字が増えるだけの一定の法則であれば、

python3

1# エラーになったらすみません参考までに 2for i in range(20): 3 hoge = request.POST.get(f'form-{i}-id', None)

といった形でループ内で実行し、値が取れたらループを抜けるという処理でいかがでしょうか?

投稿2020/03/24 01:50

編集2020/03/24 02:04
netsuy

総合スコア170

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koba-nori

2020/03/24 02:34

ご回答ありがとうございます。 こちらで問題なく取得できました。 Djangoのformから生成すると強制的にnameもidもform-0-idみたいについてしまい困っていました。 自らつけるとid=form-0-id、id=testみたいに二つになってしまいうまく取得できかったので質問させていただきました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問