【发布时间】:2010-07-27 00:45:25
【问题描述】:
我在一个视图中有以下代码:
def controller_details(request, object_id):
controller = Controller.objects.get(pk=object_id)
controllerURI = controller.protocol + '://' + controller.server + '/' + controller.name
FilterFormSet = inlineformset_factory(Controller, Filter, extra=2)
if request.method == 'POST':
formset = FilterFormSet(request.POST, request.FILES, instance=controller)
if formset.is_valid():
formset.save()
else:
HttpResponseRedirect('controller-details')
else:
formset = FilterFormSet(instance=controller)
return render_to_response('controller_details.html', {'formset':formset, 'controllerURI':controllerURI}, context_instance=RequestContext(request))
在我的模型中,单个控制器由多个过滤器(一对多)组成,每个过滤器可以有另一个过滤器作为其输出的目标(自身一对多)。当我尝试更新特定过滤器的目标时,我没有更新目标值,而是得到一个全新的条目。以下是模型的一部分:
class Filter(Component):
controller = models.ForeignKey(Controller)
targetURI = models.ForeignKey('self', verbose_name='Target URI', null=True, blank=True)
filterType = models.CharField('Type', max_length=64, choices=FILTER_TYPES,)
firstFilter = models.BooleanField('First Filter')
提前致谢。
【问题讨论】:
标签: django django-models django-forms