0

これらのモデル オブジェクトの他のフィールドを表示しながら、フォームセット (下記参照) を使用してオブジェクトのバッチからいくつかのフィールドを編集する最も簡単な方法は何ですか?

例えば:

10 個の Book オブジェクトのセットのタイトルと、ISBN と説明を編集できる各オブジェクトのフォームを表示したいと考えています。

class BookForm(ModelForm):
    class Meta:
        model = Book
        fields = ('ISBN', 'description')   # The Book model has many more fields

BookFormSet = modelformset_factory(Book, form=BookForm)
4

1 に答える 1

1

ドキュメントによると、モデルオブジェクトにバインドされたモデルフォームインスタンスには、self.instanceモデルフォームメソッドがその特定のモデルインスタンスにアクセスできるようにする属性が含まれます。したがって、次のようなモデルのフォームセットがある場合BookFormSet

BookFormSet = modelformset_factory(Book, form=BookForm)
formset = BookFormSet(request.POST, queryset=Book.objects.order_by('-pk')[:10])

次のようにテンプレートで繰り返すことができます。

<ul>{% for f in formset %}
    <li>{% if f.instance.pk %}title: {{ f.instance.title }}{% endif %} {{ f }}</li>
{% endfor %}</ul>
于 2012-06-24T15:30:36.110 に答える