我是Django的新手,所以提前感谢您的耐心等待。我正在尝试完全按照此处概述的使用inlineformset: http://charlesleifer.com/blog/djangos-inlineformsetfactory-and-you/ 问题是,我收到了一个错误,比如“在赋值之前引用''ingredient_formset'”。我看到这是有道理的,在提交的无效表单的情况下,但我不知道如何解决它,以便用户返回带有输入值的表单。
您能就如何解决错误提出任何建议吗?我知道原帖是过时的。我应该尝试一种更新的方法吗?非常感谢,嘉莉
答案 0 :(得分:0)
查看您发布的链接中的代码,我可以看到在所有情况下都定义了ingredient_formset变量。
也许您在缩进时出错并且主要的其他代码块适用于if form.is_valid()
而不是if request.POST
条件?
编辑:这是相同代码的更好且有效的版本
def submit_recipe(request):
form = UserSubmittedRecipeForm()
ingredient_formset = IngredientFormSet(instance=Recipe())
if request.POST:
form = UserSubmittedRecipeForm(request.POST)
if form.is_valid():
recipe = form.save(commit=False)
ingredient_formset = IngredientFormSet(request.POST, instance=recipe)
if ingredient_formset.is_valid():
recipe.save()
ingredient_formset.save()
return HttpResponseRedirect(reverse('recipes_submit_posted'))
return render_to_response("recipes/submit.html", {
"form": form,
"ingredient_formset": ingredient_formset,
}, context_instance=RequestContext(request))