1
url(r'^foobar/(?P<field1>.+)/$', views.foo, name="foo"),
url(r'^foobar/(?P<field2>.+)/$', views.bar , name="bar"),
這些在django中是類似的模式url。但它需要不同的參數。我怎樣才能區分它們。如何區分兩個相似的模式網址?
url(r'^foobar/(?P<field1>.+)/$', views.foo, name="foo"),
url(r'^foobar/(?P<field2>.+)/$', views.bar , name="bar"),
這些在django中是類似的模式url。但它需要不同的參數。我怎樣才能區分它們。如何區分兩個相似的模式網址?
如果參數匹配相同的正則表達式(如上面的示例中所示),則需要將任何進一步的調度移動到視圖本身中。所以有兩個URL映射到相同的觀點,並做一些進一步的邏輯視圖,以決定下一步做什麼,例如:
def dispatcher(request, arg):
if arg == 1:
return fun1(request, arg)
else:
return fun2(request, arg)
(注意這個例子可以中的URL進行:
url(r'^foobar/(?P<field1>1)/$', fun1)
url(r'^foobar/(?P<field1>.*)/$', fun2)
注意第一個URL是如何第一次嘗試
我想使它:
url(r'^foobar/(?P<name>foo)/(?P<field1>.+)/$', views.foo),
url(r'^foobar/(?P<name>bar)/(?P<field1>.+)/$', views.bar),
或者:
url(r'^foobar/(?P<name>foo|bar)/(?P<field1>.+)/$', views.foo),
和:
def foo(request, name, field1):
if name = 'foo':
do_foo(request, field1)
else:
do_bar(request, field1)