0

我想构建以下网址

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})$,...)

抱歉发布问题...(如何删除我自己的问题?)

4

1 回答 1

1

正确的网址是:

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

你应该把模式放在父母身上。

于 2013-10-29T10:40:29.940 回答