2
@render_to('edit_operation.html')
def edit_operation(request, pk):
from forms import OpBaseForm, OperationForm
from django.forms.models import inlineformset_factory
op = Operation.objects.get(pk=pk)
OpBaseFormSet = inlineformset_factory(Operation, OpBase, form=OpBaseForm, extra=5,)
if request.method == "POST":
form = OperationForm(request.POST, instance=op)
formset = OpBaseFormSet(request.POST, instance=op)
if formset.is_valid() and form.is_valid():
form.save()
formset.save() #error here
return HttpResponseRedirect(op.get_absolute_url())
else:
form = OperationForm(instance=op)
formset = OpBaseFormSet(instance=op)
return {'operation': op, 'opform': form, 'formset': formset}
이 매우 간단 보이지만 데이터 (도 변경되지 않은 데이터)를 제출하려고 할 때마다, 나는이 오류를 얻을 :저장 inlineformset_factory 데이터
Environment: Request Method: POST Request URL: http://localhost:8000/edit/operation/1/ Django Version: 1.0.2 final Python Version: 2.6.2 Installed Applications: ['main', 'django_extensions', 'django.contrib.comments', 'django.contrib.admindocs', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.gis', 'django.contrib.humanize', 'registration'] Installed Middleware: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware') Traceback: File "/usr/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response 86. response = callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python2.6/dist-packages/annoying/decorators.py" in wrapper 55. output = function(request, *args, **kwargs) File "/home/chris/Websites/jobmap/main/views.py" in edit_operation 68. formset.save() File "/usr/lib/python2.6/dist-packages/django/forms/models.py" in save 389. return self.save_existing_objects(commit) + self.save_new_objects(commit) File "/usr/lib/python2.6/dist-packages/django/forms/models.py" in save_existing_objects 403. obj = existing_objects[form.cleaned_data[self._pk_field.name]] Exception Type: KeyError at /edit/operation/1/ Exception Value: None
사람이 오류의 원인이 무엇인지 어떤 생각을 가지고 있습니까? 오류가있는 경우 formset에 'formset.is_valid()
이 참이되고 있습니까? 누구든지 적어도 디버깅하는 방법에 대한 아이디어가 있습니까? 개별적으로 사용할 때 두 양식 모두 완벽하게 작동하며 내 서식 파일에 {{formset.management_form}}
이 있습니다.
아 그게 다야. 때로는 문제를 해결하기 위해 신선한 눈빛이 필요합니다. 감사. – priestc