2011-02-18 49 views
1

这应该很简单,我实际上昨天已经开始工作了。我不知道什么改变了,但现在抛出一个错误。Django Inline Formset问题(列表超出范围)

def game_design(request): 
    user=User.objects.get(pk=request.user.id) 
    organization=user.organization_set.all()[0] 
    website=organization.website_set.all()[0] 
    surveys=website.survey_set.all() 
    error='' 
    SurveyFormSet=inlineformset_factory(Website, Survey, extra=0, can_delete=True) 
    NavigationFormSet=modelformset_factory(Navigation, extra=1) 
    if request.method=='POST': 
     survey_formset=SurveyFormSet(request.POST, request.FILES, prefix="surveys") 
     navigation_formset=NavigationFormSet(request.POST, request.FILES, prefix="navigations") 
     if survey_formset.is_valid() and navigation_formset.is_valid(): 
       survey_formset.save() 
      navigation_formset.save() 
      return HttpResponseRedirect("/rewards/") 
     else: 
      error="Please fix your errors" 
      survey_formset=SurveyFormSet(request.POST, request.FILES,prefix="surveys") 
      navigation_formset=NavigationFormSet(request.POST, request.FILES,prefix="navigations") 
      return render_to_response('website/game_design.html', {'website':website,'survey_formset':survey_formset, 'navigation_formset':navigation_formset, 'error':error}, context_instance=RequestContext(request)) 
    else: 
     survey_formset=SurveyFormSet(instance=website,prefix="surveys") 
     navigation_formset=NavigationFormSet(queryset=Navigation.objects.none(),prefix="navigations") 
    return render_to_response("website/game_design.html", {'website':website,'survey_formset':survey_formset,'navigation_formset':navigation_formset,'error':error},context_instance=RequestContext(request)) 

感谢在这一个

+0

这里的缩进错误在代码中不存在。在我检查POST方法后,错误似乎在行中被抛出。我想这可能是一个模板错误,但我用{{form.as_p}}和现有的调查显示正确 – Ben 2011-02-18 03:08:52

回答

1

任何帮助,你应该总是张贴完整回溯,使人们可以更好的帮助。

如果你说什么都没有改变,这是工作在昨天,有一个领域,代码并不需要改变,以抛出IndexError

organization=user.organization_set.all()[0] 
website=organization.website_set.all()[0] 

你确定这是不是问题?

无论哪种方式,直到我们看到一个回溯,这是很难说;)

+0

对不起Yuji,我是一个noob。我附加了追踪。 – Ben 2011-02-18 04:38:48

9

我的问题似乎已涉及到不包括在我的表单集实例论证。

我应该有以下几点:

survey_formset = SurveyFormSet(request.POST,request.FILES,例如=网站,PREFIX = “调查”)

缓慢但稳步地我学会不犯了愚蠢的错误

+0

请标记为已回答(这告诉人们在搜索结果等中查看您的问题,并已回答。 – 2012-06-20 02:24:13