我叫我的 “editFamily” 视图通过HttpResponseRedirect从别的地方:Django:查看POST后的参数?
return HttpResponseRedirect(reverse('editFamily', kwargs={'pk': family_id}))
相应的URL的模式是这样的:
url(r'^editFamily/(?P<pk>[0-9]+)/$', views.editFamily, name='editFamily')
然后终于有我的观点:
def editFamily(request, pk_):
obj = models.Family.objects.all().filter(pk=pk_)
if request.method == 'POST':
form = forms.FamilyForm(request.POST, instance=obj)
if form.is_valid():
form.save()
else:
form = forms.FamilyForm(instance=obj)
return render(request, 'editFamily.html', {'form': form})
它需要pk_,结束于else分支并服务于我的编辑-html。但是在观众提交他的关于参数pk_的数据之后会发生什么?我来自POST时是否缺少pk_?我是否必须确保在我的模板中传递该参数?
你为什么使用pk_?改用pk。 –
因为“filter(pk = pk)”...对我来说很奇怪,我想避免错误。 – user3182532
但你的变量应该与你在urls.py文件中使用的内容相匹配。你可以使用'url(r'^ editFamily /(?P [0-9] +)/ $',views.editFamily,name ='editFamily')'然后'def editFamily(request,id):' –