gpt4 book ai didi

django - 如何将 url 参数传递给 Django urls.py 中的 reverse_lazy

转载 作者:行者123 更新时间:2023-12-03 11:52:24 24 4
gpt4 key购买 nike

考虑到我有 1 个资源和 2 个 url(假设新的和旧的)连接到该资源。所以,我想为 URL 之一设置 HTTP 重定向。

myapp/urls.py我有:

urlpatterns = patterns('',
url(r'^(?P<param>\d+)/resource$',
'myapp.views.resource',
name='resource-view'
),
)

mycoolapp/urls.py我想说明:
from django.views.generic.simple import redirect_to
from django.core.urlresolvers import reverse_lazy

urlpatterns = patterns('',
url(r'^coolresource/(?P<param>\d+)/$',
redirect_to,
{
'url': reverse_lazy('resourse-view',
kwargs={'param': <???>},
current_app='myapp'
),
}
),
)

问题是如何通过 <param>reverse_lazy kwargs(所以,在上面的例子中,用什么代替 <???>)?

最佳答案

我不会直接在 urls.py 中执行此操作,我会改为使用基于类的 RedirectView计算要重定向到的 View :

from django.views.generic.base import RedirectView
from django.core.urlresolvers import reverse_lazy

class RedirectSomewhere(RedirectView):
def get_redirect_url(self, param):
return reverse_lazy('resource-view',
kwargs={'param': param},
current_app='myapp')

然后,在您的 urls.py你可以这样做:
urlpatterns = patterns('',
url(r'^coolresource/(?P<param>\d+)/$',
RedirectSomewhere.as_view()),
)

关于django - 如何将 url 参数传递给 Django urls.py 中的 reverse_lazy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9879259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com