我想构建以下网址
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和图像都存在)时,我遇到了这个问题。
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 :(得分:1)
正确的网址是:
url(r'^xray/(?P<id>\d+)/(?P<image_name\w+\.\w{3})$', mypil.views.edit_xray)
您应该将模式放在父母身上。