2013-10-29 44 views
0

我希望構造以下網址Django和URL創建

domain/edit/xray/<id>/<image_name> 

其中id是模型的id和IMAGE_NAME是圖像的名稱。

我有一個應用程序,將處理的圖像編輯與自己的看法讓說mypil

mypil.views

def edit_xray(request, id, image_name): 
    ....code to get image by name 
    ....model by id and edit image using PIL 
     model = Model.objects.get(pk=id) 

項目/ urls.py

url(r'^edit/', include(mypil.urls)) 

mypil.urls

url(r'^xray/(?P<id>)\d+/(?P<image_name>)\w+\.\w{3}$', mypil.views.edit_xray) 

但是,當我嘗試查看編輯/ xray/1/image.jpg(id和圖​​像都存在)時,我遇到此問題。

invalid literal for int() with base 10: '' 

和追蹤顯示我上面

model=Model.objects.get(pk=id) 

該行是否爲空字符串(「」)意味着它不能正確地從URL解析ID?我的網址格式不正確嗎?

編輯:哎呀我的眼睛....把\ d +需要和圖像REG模式括號

url(r'^xray/(?P<id>\d+)/(?P<image_name>\w+\.\w{3})$,...) 

對不起,張貼問題...(我如何刪除我自己的問題裏面? )

+0

不要刪除它,這不是一個壞問題。有人可能會再次犯同樣的錯誤 – yuvi

+0

這是真的嗎?只是不夠謹慎大聲笑:) – Apostolos

回答

1

正確的URL是:

url(r'^xray/(?P<id>\d+)/(?P<image_name\w+\.\w{3})$', mypil.views.edit_xray) 

你應該把模式在parentnesses。

+0

是ty ....我的眼睛正在玩技巧... – Apostolos

+0

在我看來,保持尾隨斜線是一個很好的做法。 – iMom0