【发布时间】:2013-10-29 10:35:46
【问题描述】:
我要构造如下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)
但是当我尝试查看 edit/xray/1/image.jpg(id 和 image 都存在)时,我遇到了这个问题。
invalid literal for int() with base 10: ''
回溯显示我上面的那一行
model=Model.objects.get(pk=id)
空字符串('')是否意味着它没有正确解析来自 URL 的 id?我的网址格式不正确吗?
编辑:该死的我的眼睛....需要将 \d+ 和图像注册模式放在括号内
url(r'^xray/(?P<id>\d+)/(?P<image_name>\w+\.\w{3})$,...)
抱歉发布问题...(如何删除我自己的问题?)
【问题讨论】:
-
不要删除它,这不是一个坏问题。有人可能会再次犯同样的错误
-
真的吗?只是不够谨慎哈哈:)
标签: django url-pattern