gpt4 book ai didi

django - 将uuid传递给reverse()来构造url

转载 作者:行者123 更新时间:2023-12-02 06:39:08 24 4
gpt4 key购买 nike

我有一个网址:

url(r'^profile_detail/(?P<uuid>%s)/$' % uuid, ProfileDetailView.as_view(), name="profile_detail_view")

我需要将用户重定向到该 View ,但我不知道如何在不对其进行硬编码的情况下构造 URL,这是我不想做的。

我想到了这样的事情:

reverse('profile_detail_view' 'profile.uuid')

我尝试了一些变体,但没有得到正确的结果。我还尝试了一些带有 args 和 kwargs 的东西,但没有任何结果。

我该怎么做?

最佳答案

urls.py
urls.py您只需定义匹配时调用给定 View 的模式。匹配的内容将作为命名参数传递给 View ,例如

url(
r'^profile_detail/(?P<uuid>[\d\-]+)/$',
ProfileDetailView.as_view(),
name="profile_detail_view"
)

此模式将匹配数字 ( 0-9 ) 和连字符 ( - )(根据 uuid 您可以在分组和长度方面加强正则表达式)。

查看
然后,您的 View 有责任查找此 uuid 的用户。属于(或者如果未找到用户则引发错误),例如

class ProfileDetailView(View):
def get(self, request, uuid):
try:
user = User.objects.get(uuid=uuid)
except User.DoesNotExist:
raise Http404 # or whatever else is appropriate

# ...

倒车
通过将所有必要的内容传递给 reverse 来反转 View 。功能。 key 在kwargs需要匹配 url 模式中的命名正则表达式 (?P<uuid>[\d\-]+)

reverse('profile_detail_view', kwargs={'uuid': profile.uuid})

关于django - 将uuid传递给reverse()来构造url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29830348/

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