重定向网址是“liveinterviewList/2”
而且,当然,我在 url.py 中声明了该 url,当我在浏览器中手动键入该 url 时,它运行良好。怎么了?
更多问题。在这种情况下,我将 user_id 写在 url 上。我认为,这不是制作 url 模式的好方法。但我不知道如何在没有 url 模式的情况下传递 user_id 变量。
请给我一个提示。
重定向网址是“liveinterviewList/2”
而且,当然,我在 url.py 中声明了该 url,当我在浏览器中手动键入该 url 时,它运行良好。怎么了?
更多问题。在这种情况下,我将 user_id 写在 url 上。我认为,这不是制作 url 模式的好方法。但我不知道如何在没有 url 模式的情况下传递 user_id 变量。
请给我一个提示。
HariHaraSudhan 遗漏的是如何使用参数。对于你的情况,你会想要这样的东西:
path(r'liveinterviewList/<int:userId>', ..., name='live-interview'),
然后当你准备好反转时,使用这个:
reverse('app:live-interview', kwargs={ 'userId': userId })
其中 app 是您的视图所在的应用程序的名称。如果您的 url 位于主 urls 文件中,则不需要app:
前缀。
You should add a name to your path url and use it to redirect.
As the django doc says :
urls :
urlpatterns = [
path('/name', name="some-view-name")
]
def my_view(request):
...
return redirect('some-view-name')
Djangoreverse
函数接受路径的名称而不是 URL。
假设我有这样的 url 模式
urlpatterns = [
path('/users/list', name="users-list")
]
在我看来,我可以这样使用
def my_view(request):
return redirect(reverse("users-list"));