我的应用程序中有不同的模型,主模型有一些其他模型的多个实例。
模型.py:
class Person(models.Model):
...
class Pet(models.Model):
owner = models.ForeignKey(Person)
...
表格.py:
class PersonForm(forms.ModelForm):
class Meta:
model = Person
PetFormSet = inlineformset_factory(Person, Pet, extra = 1)
视图.py:
def add_template(request):
person_form = PersonForm(prefix = 'person_form')
pet_form = PetFormSet(instance = Person(), prefix = 'pet_form')
... # check is_valid(), render when no POST data is present, etc.
关键是添加工作完美,将每个实例存储在相应的数据库表中等。我使用jquery.formset-1.2.js来管理“add.html”中表单的动态添加-删除。
但是我稍后想通过视图编辑存储的信息,即从我在请求中传递的对象中加载数据,并使用从数据库中获取的数据渲染表单集(如果有3只宠物与正在编辑的人相关) , 显示“宠物”的 3 个表单实例,并显示它们的值)。
我还想添加新的宠物并删除现有的宠物,以及更改现有的字段值。
我已经尝试在 FormSet 创建中使用查询集,但它没有显示任何内容。
知道如何缓解这个问题吗?也许使用应用程序来简化表单集管理?
谢谢