3

こんにちは私は部品と数量の表としてユーザーの結果を出力するサイトを持っています。ページ上でのユーザーの操作により、テーブル内の行(パーツ)の数が変動する可能性があります。

このパーツのリストをユーザーに対して保存する必要があるので、フォームセットがこれを処理するための最良の方法であると思います。

forms.py

class UserBuildForm(forms.Form):
    part = forms.CharField()
    part_quantity = forms.IntegerField()

views.py

from django.forms.formsets import formset_factory
from tool.forms import UserBuildForm

def my_view(request):
    ...
    UserBuildFormSet = formset_factory(UserBuildForm)
    formset = UserBuildFormSet()
    ...

私の考えは、パーツ列と数量列が実際に入力されるように、テーブルhtmlのフォームフィールドをラップすることです(ただし、数量のみをユーザーが編集できるようにする必要があります)。このように、各行は実際にはフォームです。

これで、私のajax関数は、テーブルに行を追加および削除することで機能します。単なるhtmlとして追加のフォームフィールドを追加できますか?

これらの動的な数のフォームをどのように処理する必要がありますか?を使用してフォームセットの数を指定できることは知っていますがextra、検証する必要のあるフォームの数は不明です。

また、これはユーザーの製品データを保存するこの典型的な方法への最良のアプローチですか?

どんな助けでも大歓迎です。

4

1 に答える 1

2
  • jqueryを使用してフォームフィールドを追加/削除できます
  • フォームの数は非表示の入力 "id_formname_TOTAL-FORMS" に格納されます
  • データを処理するには、views.py のフォームを反復するだけです。

    formset.forms 内のフォームの場合: form.save()

フォーム フィールド ( jquery ) の追加/削除を処理する方法を示す Excellet チュートリアルを次に示します。 -ジャンゴ/

于 2013-01-24T15:41:14.030 に答える