我有一个名为 Porumbei 的模型,我想创建一个 View 来编辑这些对象。根据我对 django 的了解,我如何编写此 View 并将主键传递给 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'),
Reverse for 'editareporumbei' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['porumbei/editare/(?P[0-9]+)/$']
如果我直接访问porumbei/editare/5
,它会显示用于编辑数据的表单,但我想在单击按钮时将我带到该页面。该按钮位于列出所有 Porumbei 的页面中。
最佳答案
路径不正确。尝试:
path('porumbei/editare/<int:pk>/', views.editareporumbei, name='editareporumbei'),
或者:
re_path('porumbei/editare/(?P<pk>\d+)/', views.editareporumbei, name='editareporumbei'),
关于python - 如何将主键传递给 url 以编辑有关对象的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56233564/