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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

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

Q&A

1回答

2608閲覧

Djangoの動的フォーム生成について

KoheiNoma

総合スコア14

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

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

0グッド

0クリップ

投稿2019/05/05 05:14

編集2019/05/05 05:30

Djangoアプリケーションにおいて動的に複数選択可能なチェックボックスをどのように作成すれば良いのかわからず悩んでいます。
あるグループに所属しているしている人(coworkerと変数定義しています)一覧に合わせてチェックボックスを用意したいと考えています。

理想の見た目は以下の感じです。
□ 山田太郎
□ 鈴木一郎
□ 田中二郎
以下続く‥

urlsから取得してきたgroup.idにひも付けて、そのグループに所属しているUserオブジェクトを取得し、フォームを生成するというのをviewsで定義したいのですが、どのようにすれば良いのかわかっていません。formsではオブジェクト数を定義できない(グループによって動的にUserオブジェクトの数が変化するため)ので、viewsで定義して、フォームに引き渡してあげるのでしょうが、そのやり方がよくわかりません‥

わかる方いればご教授いただけると幸いです!

以下、forms.pyとviews.pyの該当部分のソースコードになります。

forms

1class CoworkerCheckForm(forms.Form): 2 """Coworkerのチェックボックスフォーム""" 3 def __init__(self, user, group, coworkers=[],*args, **kwargs): 4 check_box = forms.MultipleChoiceField(choices=coworkers, widget=forms.CheckboxSelectMultiple())

views

1def group(request, group_id): 2 group = Group.objects.get(id=group_id) 3 coworkers = group.owner.all() 4 if request.method == 'POST': 5 form = CoworkerCheckForm(request.user, group, coworkers, request.POST) 6 if form.is_valid(): 7 8 return redirect('hr:review',form) 9 else: 10 form = CoworkerCheckForm(request.user, group) 11 12 return render(request, 'hr/group.html', {'form':form }

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

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

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

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

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

m.ts10806

2019/05/05 05:40 編集

回答依頼いただいて申し訳ないのですが、Pythonは全くわかりませんので、今後はなるべく関連タグのスコアの高いユーザーに振っていただきたく。(Webの概念に触れる部分なら良いのですがDjangoそのものとなるとサッパリです)
KoheiNoma

2019/05/05 09:50

承知しました!ご丁寧にお返事いただきありがとうございます。今後は関連タグのスコアの高いユーザーの方に降るようにします。また何かあればよろしくお願い申し上げます。
guest

回答1

0

その機能を使ったことがないので詳細はわかりません。参考になりそうなURLだけ貼っておきます。
https://qiita.com/imp555sti/items/ed3a577e8138918718a4

投稿2019/05/05 13:05

iwamot

総合スコア1154

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問