填写完表格后,我试图重定向到已创建的帖子。我尝试跟踪Django redirect to created post after form,但遇到了此错误
TypeError at /inquiry/
inquiry() missing 1 required positional argument: 'pk'
def inquiry(request,pk):
form = RescueeForm()
if request.method == 'POST':
form = RescueeForm(request.POST)
if form.is_valid():
form.save()
return redirect ('rescuee', form.pk)
context = {
'form' : form
}
return render(request, "inquiry_page.html", context)
urls.py
urlpatterns = [
path('', views.index, name='index'),
path('inquiry/', views.inquiry, name='inquiry'),
path('rescuee/<int:pk>', views.rescueeview, name='rescuee'),
]
编辑:添加逗号
在您发布的代码片段中,对
redirect
的调用中似乎缺少一个逗号。另外,正如其他人所指出的,您正在将一个pk
参数传递给不使用的inquiry
,这导致了错误。一旦修复了这个问题,您就指出form.pk
有一个属性错误,这意味着form
没有一个名为pk
的属性。也许你的意思是form.id
试一试
或者,如果您需要表单创建的模型的
pk
,您可以尝试:我看你忘了在{}和{}之间有一个{}:
return redirect ('rescuee', form.pk)
您的
inquiry
视图接受一个参数pk
。 在urls.py
中,查询路径不采用pk参数。 更改urls.py
如下所示:当您的url不接受pk的任何值时,为什么在查询视图中使用pk
我认为这就是解决方案,因为您没有在视图代码中使用pk。试试看:
相关问题 更多 >
编程相关推荐