使用formset编辑一批对象中的某些字段(见下文),从这些模型对象的其他字段中显示时,最简单的方法是什么?
例如:
我想显示一组10个图书对象的标题以及每个图书的表格,可以在其中编辑他们的ISBN和描述。
class BookForm(ModelForm):
class Meta:
model = Book
fields = ('ISBN', 'description') # The Book model has many more fields
BookFormSet = modelformset_factory(Book, form=BookForm)
答案 0 :(得分:1)
根据the doc:绑定到模型对象的模型表单实例将包含self.instance
属性,该属性为模型表单方法提供对该特定模型实例的访问。因此,如果您有一个模型的formset,例如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>