2

这让我疯狂:

  • 我有一个 Tastypie 自定义资源(不是 ModelResource)。
  • 我需要为“主键”允许“空格”(%20 代码)。例如:

    localhost:8000/api/v1/collections/i%20am%20a%20space/

  • 添加带有“\s”的正则表达式适用于GET (obj_get),PUT (obj_update)DELETE (obj_delete)

    def override_urls(self):
    return [url(r"^(?P<resource_name>%s)/(?P<name>[\w\d\s_.-]+)/$" % self._meta.resource_name, self.wrap_view('dispatch_detail'), name="api_dispatch_detail")]
    
  • 问题在于obj_get_list:返回对象列表时,resource_uri如果存在空格,则参数为空。代码在函数reverse(django.core.urlresolvers) 中失败并出现 NoReverseMatch异常。

我什至试图覆盖来自tastepie的base_urls,但它没有用,我现在真的迷路了。也许这是一个菜鸟问题,但考虑到我大约 1 个月前开始使用 django 和 python:我是菜鸟 :-P

4

1 回答 1

0

刚刚更改了正则表达式中“pk”的“名称”:

^(?P<resource_name>%s)/(?P<name>[\w\d\s_.-]+)/$
于 2012-07-19T09:05:20.150 回答