2011-05-03 162 views
0

不確定爲什麼這不匹配urls.py中的任何url。我檢查了一個正則表達式檢查器,它應該是正確的。django url正則表達式不匹配

urls.py:

url(r'^toggle_fave/\?post_id=(?P<post_id>\d+)$', 'core.views.toggle_fave', name="toggle_fave"), 

樣品網址:

http://localhost:8000/toggle_fave/?post_id=7

使用this簡單的regex檢查託運。看起來沒錯。有任何想法嗎?

謝謝!

回答

4

urlconf不用於匹配你的url的request.GET參數。你在視圖中這樣做。

你要麼希望自己的網址是這樣的:

http://localhost:8000/toggle_fave/7/ 

,並使用與之相匹配:

url(r'^toggle_fave/(?P<post_id>\d+)/$', 'core.views.toggle_fave', name="toggle_fave"), 

你的觀點,看起來像:

def toggle_fave(request, post_id): 
    post = get_object_or_404(Post, pk=post_id) 
    ... 

http://localhost:8000/toggle_fave/?post_id=7 

和你的urls.py:

url(r'^toggle_fave/$', 'core.views.toggle_fave', name="toggle_fave"), 

和views.py:

def toggle_fave(request): 
    post_id = request.GET.get('post_id', '') 
    if post_id: 
     post = get_object_or_404(Post, pk=post_id) 
    ... 
+0

好吧,我明白了,謝謝你。儘管我認爲urls.py中的正則表達式部分是誤導性的。 – rabbid 2011-05-03 03:30:32