在编辑其他模型字段时显示模型字段

时间:2012-06-22 12:03:49

标签: django django-forms

使用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)

1 个答案:

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