python - Django Tastypie : reverse url with "spaces". 怎么样?

标签 python django url reverse tastypie

这让我发疯:

  • 我有一个 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 异常。

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

最佳答案

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

^(?P<resource_name>%s)/(?P<name>[\w\d\s_.-]+)/$

关于python - Django Tastypie : reverse url with "spaces". 怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11141424/

相关文章:

python - 如何更改 DRF 中的验证错误响应?

javascript - 类型错误 : url is not a function

url - Rust 标准库中是否具有从 URL 下载文件的功能

python 如何在python中从xml中获取标签

python - AWS Lambda 和 Python 中的 Open CV 的无服务器问题

django - 使用 Django rest 框架时更改字段名称

java - Spring mvc 将 url "myapp.com/Foo/12345/test-one"重写为 "myapp.com/Foo/12345/test-one-a-b"

python - 从 PyQt 的主窗口打开 Ui_Form

python - 从列表中删除字符串

python - 向 Django 模型方法添加请求?