问题描述
我正在尝试在 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)