在下面的代码中我怎么知道有两个超链接指向同一个视图。我的问题在于如何知道用户指的是哪个链接?如何在视图中获取引用的url上下文
JS:
window.location = "/project/server/fserver";
window.location = "/project/server/";
网址:
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^fserver/$', views.IndexView.as_view(), name='index'),
视图
class IndexView(tables.DataTableView, VolumeTableMixIn):
table_class = project_tables.VolumesTable
template_name = 'project/server/index.html'
def get_data(self):
print "In get data==============="
.......
答案 0 :(得分:0)
https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.path
def get_data(self):
print self.request.path
...您也可以使用单个网址模式执行此操作
url(r'^(?:fserver/)?$', views.IndexView.as_view(), name='index'),
或作为传递给视图的kwarg捕获:
url(r'^((?P<page>fserver)/)?$', views.IndexView.as_view(), name='index'),
答案 1 :(得分:0)
备用方式是:
- &GT;在视图中添加一个类变量以存储URL名称:
class IndexView(tables.DataTableView, VolumeTableMixIn):
view_url_name = 'index'
........
- &GT;将URL定义更改为以下内容:
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^fserver/$', views.IndexView.as_view(view_url_name='index_fserver'), name='index_fserver'),
此外,这将帮助您以更多django-ish方式获取网址,例如reverse(view_url_name)
注意:两个不同的网址永远不应该是同一个名称,因为这会产生歧义&amp;毕竟Django将挑选所有第一个匹配的名称,因此它也没用。