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 回答