2013-03-25 17 views
0

我的目標是從我的名字空間傳入2個參數到我的其他視圖。Django的URL正則表達式捕獲Int

<li><a href ="{% url world:p p.id 1 %}">{{p.description}} 

對不起,如果這沒有意義。我盡我所能找到合適的詞來描述我的問題。

參數,我試圖傳入到裏面的view.py裏面的delpic函數是一個圖片ID和一個整數,但爲了它的工作,它必須通過正則表達式,然後它將被髮送到我的views.py 。

def delpic(request,picture_id,digit): 

    digit = digit 
    If digit == "1": 
       #Something 
    If digit == "2": 
       # Something 
    return render(request,'boardeditor.html',{'board':BoardNameForm(request.user),}) 

但是當我試圖通過我的觀點。我得到這個錯誤

TypeError at /delpic/3/1/ 

    delpic() takes exactly 3 non-keyword arguments (2 given) 

我認爲這是我的正則表達式是casuing問題

url(
     r'^delpic/(?P<picture_id>\d+)/(\d{1})/$', 
     'pet.views.delpic', 
     name= 'delpic', 
    ), 

我的主要URL CONF

url(
    r'^', 
    include('pet.urls', 
     namespace = 'world') 
), 
+0

您還沒有註冊您的網址與命名空間:https://docs.djangoproject.com/en/dev/topics/http/urls/ #reverseing-namespaced-urls – 2013-03-25 14:00:18

+0

只是一個側面說明,你的函數delpic在你處理你的數字變量之前會返回一些東西,不要認爲你的意圖... – Jingo 2013-03-25 14:12:19

+0

爲什麼不復制你的'picture_id'正則表達式並在重命名時添加它? – 2013-03-25 14:13:31

回答

8

您使用正則表達式錯誤。

該視圖期待命名的正則表達式,而不是命名它。 該視圖不理解發生了什麼。

您查看正確的正則表達式是這樣的:

r'^delpic/(?P<picture_id>\d+)/(?P<digit>\d+)/$'