如何将入门密钥传递给url以编辑有关对象的信息?

时间:2019-05-21 07:47:48

标签: python django

我有一个名为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的页面中。

1 个答案:

答案 0 :(得分:0)

路径不正确。试试:

path('porumbei/editare/<int:pk>/', views.editareporumbei, name='editareporumbei'),

或:

re_path('porumbei/editare/(?P<pk>\d+)/', views.editareporumbei, name='editareporumbei'),