我有一個應用程序,允許您通過3個字段過濾數據。我正在嘗試在我的urls.py中編寫一個RegEx,它可以捕獲多個組合,而不必將每個可能的組合寫入它自己的URL。如何在Django的urls.py中使用一個RegEx捕獲多個參數?
這裏是我的urls.py:
#urls.py
urlpatterns = patterns('',
# Uncomment the next line to enable the admin:
(r'^admin/', include(admin.site.urls)),
(r'(?P<key>\w*?)=(?P<value>\w*?)&|$', views.scriptFilter),
我測試了上述正則表達式在pythonregex.com,它似乎捕捉到儘可能多的鍵/值對,因爲我可以扔了。但是,當我測試在我的應用程序中嘗試它時,Django僅返回基於第一對的查詢集,並忽略其他對。
例如,如果我輸入: http://MYSITE/feature=1&session=1&
基於特徵的Django返回數據= 1只,並忽略會話= 1。
這裏是我的views.py:
#views.py
def scriptFilter(request, key, value):
if key == 'session':
sessionID = value
qs = models.Script.objects.filter(session=sessionID)
elif key == 'product':
productID = value
qs = models.Script.objects.filter(product=productID)
elif key == 'feature':
featureID = value
scriptFeature = models.Feature.objects.get(pk=featureID)
qs = models.Script.objects.filter(feature=scriptFeature)
else:
qs = models.Script.objects.all()
caseTotal = qs.aggregate(Sum('caseCount'))
scriptTotal = qs.aggregate(Count('subScriptName'))
featureTotal = qs.aggregate(Count('feature'))
return render_to_response('scripts.html', locals())
我是新來的Python & Django的,所以請溫柔:)任何幫助將非常感激。
@jordan:任何理由將此答案標記爲社區wiki? – 2010-09-20 19:18:38
如果需要進行更改,人們可以更輕鬆地進行編輯。如果這不是什麼社區維基是爲了,對不起,並感到自由(誰擁有這種權力)將其改回。 – 2010-09-20 19:56:29
沒有任何問題與你的選擇,只是好奇:) – 2010-09-20 19:59:19