私はおそらく3週間しっかりとRTFMを行ってきましたが、これを行う方法がわかりません. もし私がこれに慣れたら、Django for Dummies の本を書くことを約束します。ドキュメントは理解できません!
データベース内の各メモのタイトルを表示するインデックス ページを備えた簡単なメモ取りアプリがあります。リストの各項目にチェックボックスを付けて、1 つまたは複数のメモを選択してから削除ボタンを押して、「Are you sure you want to delete... "x, y and z" notes?」にリダイレクトできるようにしたいだけです。ページ、確認または拒否。次に、索引リストに戻ります。管理アプリと同じです。
各オブジェクトのタイトルとそのチェックボックスが個々のフォームを構成する必要があるため、テーブルにレイアウトされたモデルフォームセットが必要であると推測しました。
私は多くのアプローチを試みました。最新はこんな感じ。現状ではエラーは発生していません (forms.py 関数でウィジェット属性を設定していましたが、それは気に入らなかったため、何かが表示されるかどうかを確認するためだけに取り出しました)。全て。また、 select_note_function はおそらくクラスにする必要があると思います。私が見つけることができるすべてのドキュメントは、CharFields と文字列入力を説明しています。データベースを制御するウィジェットを取得する方法の完全な例が 1 つも見つかりません。
フォーム.py:
from django import forms
from django.forms.models import modelformset_factory
from django.forms.widgets import CheckboxInput
from models import Note
def select_note_formset():
SelectNote = modelformset_factory(Note)
Form = modelformset_factory(
Note,
form=SelectNote,
fields='title',
)
models.py:
def selection_index(request):
form = select_note_formset()
if request.method == 'POST':
formset = form(request.POST)
if formsest.is_valid():
pass
else:
formset=form
return render_to_response('select_index.html', {'formset':formset})
テンプレート:
<form method="post" action="">
{{ formset.management_form }}
<table>
{% for form in formset %}
{{ form }}
{% endfor %}
</table>
</form>
私が知っている限りでは、私は完全に間違った木を吠えている可能性があります. 誰かがこれを綴ることができれば、私はそれをとても感謝しています!