実現したいこと
よろしくお願いいたします。
Django 2.2.4を使っています。
画面上に下図のような行も列も可変長の表を表示しようとしています。
(ブラウザで表示させたい)
行については、ユーザーがボタン等で追加できることを前提としています。
その場合、ボタン押下でsubmitし、DjangoのView内の処理で行追加されたフォームを
再度テンプレート側に送る形で実装するように指示が出ています
(具体的なやり方については特に言及されていません)。
列については、Djangoのview内の処理で決定しますので、画面上の操作で追加されることはない想定です。
ですが、行・列とも可変長な表の作り方については、
ネット等で調べても全然見つかりません。
ご教示いただければ、幸いです。
補足情報(FW/ツールのバージョンなど)
Django 2.2.4
汎用ビューを用いて実現したいですが、必須ではありません。
可変長といっても、どのタイミングかでは決定してなくてはなりません。
エクセルのようにユーザーに追加をさせるUIも用意することを想定しているのですか?
一番手っ取り早いのはjavascriptを利用したライブラリを利用することかと思います。
ご返信、ありがとうございます。
>エクセルのようにユーザーに追加をさせるUIも用意することを想定しているのですか?
行については、ユーザーがボタン等で追加できることを前提としています。
その場合、ボタン押下でsubmitし、DjangoのView内の処理で行追加されたフォームを再度テンプレート側に送る形にする方向で実装するように指示が出ています。
列については、Djangoのview内の処理で決定しますので、画面上の操作で追加されることはない想定です。
現状、行・列とも可変長の表を作成する際、汎用ビューなどでどこまで対応できるか、
javascript等を利用する際の参考になるサイト(サンプル)を調べています。
もしご存知でしたら、ご教示頂ければ助かります。
失礼します。
> 実装するように指示
ということであれば、javascriptを利用する必要はありません。すべてdjango内で解決すればよいという指示かと思います。
ダイナミックと考える必要はなく、モデルなどから与えられた行・列の情報をどのようにテンプレートに反映させ、その情報をもとに表を表示するHTML/CSSを作成すればよいのだと思います。
とはいえ、指示が出たということは、わからないことは、その指示者にお聞きになるのが一番よい方法かと思いますが。
再度のご返信、ありがとうございます。
>わからないことは、その指示者にお聞きになるのが一番よい方法かと思いますが。
指示した人物は、PG経験や知識は豊富ですがDjangoについては、まだこれからといった段階で、
具体的な手順は知っていません(私自身もDjango初級者)。
なるべく指示(要望)通りに実現したいのですが、Djangoで行・列とも可変長な表の作成については、
情報が見つからず、本質問を投稿しました。
> ダイナミックと考える必要はなく、
>デルなどから与えられた行・列の情報をどのようにテンプレートに反映させ、
>その情報をもとに表を表示するHTML/CSSを作成すればよいのだと思います。
当初は汎用ビュー等で簡潔に実装できないか模索していましたが
ご提示いただいたやり方に落ち着くように思えます。
ご提案、ありがとうございます。
ユーザー側の使い勝手を考えると、最初に提示したJavaScriptのライブラリを利用するのが一番かと思います。
とは言え、Django/Javascript両方が不慣れな場合、開発工数もかかるので、まずはDjangoのみで実現できる方法で進められるのがよろしいのではと思います。
ちなみに汎用ビューとはどのようなものをイメージされているのでしょうか。
データの受け渡しをうまく実現すれば、それほど複雑な実装にはならないかと思いますが。
再々度のご返信、ありがとうございます。
>汎用ビューとはどのようなものをイメージ
(浅学でお恥ずかしいのですが)
一覧表示やデータの登録・更新などを簡潔にコーディングするやり方とイメージしています。
今回の件について、
ListViewを使って実現する場合の見本、
あるいは他の汎用ビューなどでより簡潔に実現できるのか、
などを調べていました。
ただ列も可変なテーブル表示については、
取り扱っている情報が見つかりませんでした。
>データの受け渡しをうまく実現すれば、それほど複雑な実装にはならないかと思いますが。
テンプレート内で二重ループ化するようにして実装しようかと思っています。
何度もご助言頂き、ありがとうございます。
「方向で実装するように指示が出ています」と書かれていますが、どのような指示が出されているのか具体的に全部、質問に追加してください。(その指示って、無視したらまずいんですよね?)
前提条件が判らないのに、回答を期待するのは無理ですよ。
ご指摘ありがとうございます。
「...方向で実装するように指示が出ています」についてですが、上記に記述した以外に具体的な指示は出ていません。
説明不足で、すいませんでした。
あなたの回答
tips
プレビュー