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

如何在Django views.py中使用int:参数呈现重定向URL?,django,url,redirect,crud,url-parameters,Django,Url,Redirect,Crud,Url Parameters,我正在尝试用Django制作一个表单,当表单未在特定帐户下正确填写时,该表单会显示错误。我希望它重新路由到与表单相同的页面,并且url必须具有int:参数。对于我的url.py,我有'edit/int:user\u id>,views.edit 我的难题是如何在views.py中传递渲染重定向?我尝试了渲染重定向('/edit/int:user_id')、('/edit/int:user.id')、('/edit/{user.id}')等,但没有任何效果。每次我刚得到“路径未找到” 如何在vie

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

我的难题是如何在views.py中传递渲染重定向?我尝试了渲染重定向('/edit/int:user_id')、('/edit/int:user.id')、('/edit/{user.id}')等,但没有任何效果。每次我刚得到“路径未找到”

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

视图.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('/')

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

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

你能给你看一下指定你要重定向的路由的URL.py吗?这是我的URL.py:path('/edit/',views.edit),path('edit//update',views.update)我让用户转到/edit/提交表单。无论何时由于不正确地填写表单而出现错误,它都会将用户重新路由回同一页面,并使用他们的用户id。但我不知道如何将其写入我的views.py页面。我只是尝试了一下,这是我得到的错误:page not found(404)请求方法:获取请求URL:127.0.0.1:8000/jobs/edit使用python_exam2.URL中定义的URLconf,Django尝试了这些URL模式,顺序如下:创建用户登录注销仪表板新建/创建表单编辑/编辑//update[name='update_user']jobs/view/delete/当前路径user/edit/,下一次不匹配其中任何一个,最好是编辑您的问题,添加所需元素(如URL、视图等)的代码。这对于试图帮助您的人来说更容易;)很抱歉这是我第一次使用StackOverflow或任何论坛,所以我不确定如何使用它。我只是尝试了一下,这是我得到的错误:页面未找到(404)请求方法:获取请求URL:使用python_exam2.URL中定义的URLconf,Django尝试了这些URL模式,按以下顺序:创建\用户登录注销仪表板作业/新建作业/创建\表单作业/编辑/编辑//更新[name='update \ u user']jobs/view/delete/当前路径user/edit/,与其中任何一个都不匹配。我不知道这是否有帮助,但这是我的视图。py:def update(request,user\id):errors=user.objects.empty\ validator(request.POST)if len(errors):对于key,errors.items()中的值:messages.error(request,value)返回重定向('update_user',user.id)否则:if'user_id'在request.session中:user=user.objects.get(id=job_id)user.title=request.POST['title']user.save()return redirect(f'/dashboard')return redirect('/')哦,那么你应该用
user\u id
替换
user.id,这就是我得到的错误:MultiValueDictKeyError at/edit/4/update'title'请求方法:获取请求URL:Django版本:3.1异常类型:MultiValueDictKeyError抱歉一直打扰您,顺便感谢您的帮助!我很感激@这似乎是一个不同的问题。此外,根据Benbb96的建议,您应该编辑您的问题以添加任何代码/澄清。您可以通过按您的帖子/问题下方的编辑按钮来完成此操作。
redirect('update_user', user_id)