我想要做的是让用户选择编辑他们的信息。单击eidt时,页面应提取该会话的所有信息。这是一个事件注册,所以如果他们注册多个事件,我希望他们能够编辑所有事件。
这是我的查询
events = signedup.objects.filter(sessionid = session)
从这里开始我觉得它可能是这样的:
for event in events:
person = inlineformset_factory(comp_name, signedup, can_delete=True)
form = person(instance = event)
- 这对我不起作用,也许我做错了?
我使用了inlineformset_factory,因为表有外键关系,如果我不需要它,请告诉我。这样做的最佳方式是什么?我不希望他们能够添加新记录,只需删除和编辑他们当前的记录。感谢
答案 0 :(得分:0)
由于您没有创建任何新实例,因此可以使用modelformset_factory。这将允许您编辑所需的结果;只需将instance instance = event更改为queryset = event并删除for循环。
您的代码应如下所示:
person = modelformset_factory(signedup , form=someform, extra = 0, can_delete=True)
form = person(queryset=signedup.objects.filter(sessionid = session))
通过它,您将获得与查询集匹配的所有实例的表单,如果您指定表单,则可以指定字段等。