如何在 Django views.py 中使用 int: 参数呈现重定向 URL?

问题描述

我正在尝试在 Django 中创建一个表单,该表单在特定帐户下未正确填写表单时显示错误。我希望它重新路由到与表单相同的页面,并且 url 必须有一个 int: 参数。对于我的 urls.py,我有 'edit/int:user_id>,views.edit.

我苦恼的地方是如何在views.py 中传递渲染重定向?我试过渲染重定向('/edit/int:user_id')、('/edit/int:user.id')、('/edit/{user.id}')等,但没有任何效果。每次我只是得到“找不到路径”。

如何根据我的 urlpatterns 使用 int 参数在 views.py 中编写重定向

views.py

def update(request,user_id):
    errors = User.objects.empty_validator(request.POST)
    if len(errors):
        for key,value in errors.items():
            messages.error(request,value)
        return redirect('update_user',user.id)
    else:
        if 'user_id' in request.session:
            user = User.objects.get(id=job_id)
            user.title = request.POST['title']
            user.save()
            return redirect(f'/dashboard')
    return redirect('/')

解决方法

首先,您应该通过更新您的 urls.py 来命名您的路线:

path('edit/<int:user_id>/update',views.update,name='update_user')

然后,在您看来,您可以像这样使用 redirect 函数:

redirect('update_user',user_id)