【发布时间】:2016-11-29 23:40:00
【问题描述】:
我有一个我认为很常见的情况,但我似乎无法理解它。我使用django.forms.inlineformset_factory 创建了一组表单,允许用户更改外键对象的各个方面,这些都可以正常工作。
问题是我希望能够在表单集中标记每个表单(注意,不是每个表单中的字段,而是每个表单所基于的外键模型)。例如,如果我调整文档中的示例:
from django.db import models
from django.forms import inlineformset_factory
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
title = models.CharField(max_length=100)
pages = models.IntegerField(default=0)
我创建了我的表单集以允许人们更改 Daffy Duck 的任何一本书的页数:
BookFormSet = inlineformset_factory(Author, Book, fields=('pages',))
author = Author.objects.get(name='Daffy Duck')
formset = BookFormSet(instance=author)
假设 Daffy 已经写了五本书,这些都显示为整数条目,都标有“Pages”,没有提及每本书指向哪本书。如何用书名标记表单,以便他们知道他们正在更改哪一个?我尝试将字典传递给inlineformset_factory 函数的labels 字段,但它不起作用。
【问题讨论】:
标签: django inline-formset