python - 如何将主键传递给 url 以编辑有关对象的信息?

标签 python django

我有一个名为 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/

相关文章:

python - 简单独特的非优先队列系统

python - 如何在 "teardown"框架中的 fixture 中使用 "pytest"中的测试结果

python - 我如何在 python 3 中播放声音?

python - 是否可以覆盖 Django 模型上的 .objects?

javascript - 如何通过 Django 正确地服务于我的 React 生产构建。当前配置存在 MIME 类型问题

python - 在 CherryPy 中将错误输出到浏览器

python - Python 2.6 中的可迭代枚举

javascript - 如何在 Django 中的第二个应用程序中检索第一个应用程序模型数据

python - 在 Django 管理员中嵌套内联?

python - Alamofire 不发送 header