如果 url 包含特定字符,则在 Django 中使用不同的视图
Use different view in Django if the url contains specific character
我有这样的看法:
def url_redirect(request,id):
url = get_object_or_404(Url,short_id=id)
return HttpResponseRedirect(url.httpurl)
和这些 url:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(ur'^(?P<id>.*)$', views.url_redirect),
]
基本上它所做的是从 http://127.0.0.1:8000/XYZ 重定向到另一个站点
现在,如果 url 通过添加“!”略有不同,我希望有可能使用不同的视图。字符,即:
所以每当我使用这个 url 它会做一些除了重定向之外的事情。
知道我该怎么做吗?
任何帮助表示赞赏。
如果要在同一个视图中处理它,请保持 urls
不变并更改视图:
def url_redirect(request,id):
if id.startswith('!'):
id = id[1:]
# do whatever you want with id
else:
url = get_object_or_404(Url,short_id=id)
return HttpResponseRedirect(url.httpurl)
我有这样的看法:
def url_redirect(request,id):
url = get_object_or_404(Url,short_id=id)
return HttpResponseRedirect(url.httpurl)
和这些 url:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(ur'^(?P<id>.*)$', views.url_redirect),
]
基本上它所做的是从 http://127.0.0.1:8000/XYZ 重定向到另一个站点
现在,如果 url 通过添加“!”略有不同,我希望有可能使用不同的视图。字符,即:
所以每当我使用这个 url 它会做一些除了重定向之外的事情。
知道我该怎么做吗? 任何帮助表示赞赏。
如果要在同一个视图中处理它,请保持 urls
不变并更改视图:
def url_redirect(request,id):
if id.startswith('!'):
id = id[1:]
# do whatever you want with id
else:
url = get_object_or_404(Url,short_id=id)
return HttpResponseRedirect(url.httpurl)