Edición de objetos relacionados en ModelFormSet

Tengo estos modelos:

class Gallery(models.Model): HeadImage = models.ImageField(upload_to="gallery") class Image(models.Model): Image = models.ImageField(upload_to="gallery") Gallery = models.ForeignKey(Gallery, related_name='images') class Tour(models.Model): Name=models.CharField(max_length=100) Count=models.SmallIntegerField() ActionUser=models.ForeignKey(User,editable=False) Gallery = models.OneToOneField(Gallery,editable=False) 

Como puede ver, tengo un formulario para el recorrido y un formulario para la galería y un conjunto para las imágenes de la galería, en la vista de edición del editor Quiero editar un recorrido con su galería y las imágenes de la galería. Este es el código para editar un recorrido con sus objetos relacionados:

 def edittour(request,key,tour_id): ImageFormSet = inlineformset_factory(Gallery,Image, can_delete=False,extra=4) tourinstance=Tour.objects.get(pk=tour_id) if request.method == 'POST': gform=GalleryForm(request.POST,request.FILES,instance=tourinstance.Gallery) if gform.is_valid(): gallery=gform.save(commit=False) formset=ImageFormSet(request.POST, request.FILES, instance=tourinstance.Gallery) if formset.is_valid(): gallery.save() formset.save() tform = TourForm(request.POST, request.FILES,instance=tourinstance) if tform.is_valid(): tour=tform.save(commit=False) tour.ActionUserCode=User.objects.get(pk=1) tour.save() return render_to_response('airAgency/edittour.html', {'tform': tform,'gform':gform,'formset':formset})#'airAgency/edittour/%i/' % (tour.pk)) else: pass tform = TourForm(instance=tourinstance) gform=GalleryForm(instance=tourinstance.Gallery) formset=ImageFormSet(instance=tourinstance.Gallery) return render_to_response('airAgency/edittour.html', {'tform': tform,'gform':gform,'formset':formset}) 

esto funciona bien cuando edito Tour, pero cuando edito Image_set relacionado con la galería, aparece este error:

 MultiValueDictKeyError at /airAgency/mastane/edittour/1/ "Key 'images-0-id' not found in " Request Method: POST Request URL: http://127.0.0.1:8080/airAgency/mastane/edittour/1/ Django Version: 1.3 Exception Type: MultiValueDictKeyError Exception Value: "Key 'images-0-id' not found in " Exception Location: C:\Python26\lib\site-packages\django\utils\datastructures.py in __getitem__, line 256 

Parece que está representando manualmente el formulario en su plantilla y perdiendo el campo de identificación. Asegúrese de incluir {{ form.id }} para cada formulario en el formset.

 
{{ formset.management_form }} {% for form in formset %} {{ form.id }}
  • {{ form.title }}
{% endfor %}

Consulte la documentación sobre el uso de formularios de modelo en la plantilla para obtener más información.