我有一个名为Porumbei的模型,我想创建一个视图来编辑那些对象。由于我对django的了解不足,我该如何编写将primary键传递给url的视图?我希望的网址应类似于/ porumbei / editare / pk / 我的看法:
def editareporumbei(request, pk):
porumbel = get_object_or_404(Porumbei, pk=pk)
if request.method == "POST":
form = AdaugaPorumbel(request.POST, instance=porumbel)
if form.is_valid():
form.save()
return redirect("dashboard")
else:
form = AdaugaPorumbel(instance=porumbel)
context = {
'form' : form,
}
template = loader.get_template("editare_porumbei.html")
return HttpResponse(template.render(context, request))
#Link in the template. The template shows all Porumbei in the database
<td>
<a href="{% url 'editareporumbei' pk=porumbel.pk %}" class="mr-15" data-toggle="tooltip" data-original-title="Editează"> <i class="icon-pencil"></i> </a>
</td>
# My url
path('porumbei/editare/(?P<pk>\d+)/', views.editareporumbei, name='editareporumbei'),
反向使用关键字参数'{'pk':''}'的'editareporumbei' 找到了。尝试了1种模式:['porumbei / editare /(?P [0-9] +)/ $']
如果我直接访问porumbei/editare/5
,它会向我显示用于编辑数据的表单,但是当我单击按钮时,我想带我进入页面。该按钮位于列出所有Porumbei的页面中。
答案 0 :(得分:0)
路径不正确。试试:
path('porumbei/editare/<int:pk>/', views.editareporumbei, name='editareporumbei'),
或:
re_path('porumbei/editare/(?P<pk>\d+)/', views.editareporumbei, name='editareporumbei'),