dnm*_*nmh 4 django django-urls
我有一个网址:
url(r'^profile_detail/(?P<uuid>%s)/$' % uuid, ProfileDetailView.as_view(), name="profile_detail_view")
Run Code Online (Sandbox Code Playgroud)
我需要将用户重定向到该视图,但我不知道如何构建网址而不对其进行硬编码,我不想这样做.
我想像这样:
reverse('profile_detail_view' 'profile.uuid')
Run Code Online (Sandbox Code Playgroud)
我尝试了一些变化,但我没有做对.我也试过args和kwargs的东西,但没有.
我该怎么做?
urls.py
在urls.py
你只定义模式 - 匹配时 - 调用给定的视图.已匹配的内容将作为命名参数传递给视图,例如
url(
r'^profile_detail/(?P<uuid>[\d\-]+)/$',
ProfileDetailView.as_view(),
name="profile_detail_view"
)
Run Code Online (Sandbox Code Playgroud)
此模式将匹配数字(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
# ...
Run Code Online (Sandbox Code Playgroud)
反转
通过传递reverse
函数所需的所有内容来反转视图.kwargs
需要在您的网址格式中匹配命名正则表达式的关键(?P<uuid>[\d\-]+)
reverse('profile_detail_view', kwargs={'uuid': profile.uuid})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2824 次 |
最近记录: |