Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在tastypie中使用resource_name实现类似django url的功能_Python_Django_Tastypie - Fatal编程技术网

Python 在tastypie中使用resource_name实现类似django url的功能

Python 在tastypie中使用resource_name实现类似django url的功能,python,django,tastypie,Python,Django,Tastypie,有没有一种方法可以使用resource\u name在tastypie中创建一个类似于常规django URL的资源层次结构?我的目标是让tastypie URL看起来像这样:/,但我遇到了麻烦 我已使用以下资源\u名称创建了资源: 图书馆/书籍 图书馆/书籍/书架 图书馆/书籍/流通 (请注意,父资源library/book没有尾随斜杠) 在这种情况下,我可以很好地访问父资源。但是,当尝试访问其中一个子资源(例如/api/v1/library/books/circulation)时,我收到以下

有没有一种方法可以使用
resource\u name
在tastypie中创建一个类似于常规django URL的资源层次结构?我的目标是让tastypie URL看起来像这样:
/
,但我遇到了麻烦

我已使用以下
资源\u名称创建了资源

图书馆/书籍
图书馆/书籍/书架
图书馆/书籍/流通

(请注意,父资源
library/book
没有尾随斜杠)

在这种情况下,我可以很好地访问父资源。但是,当尝试访问其中一个子资源(例如
/api/v1/library/books/circulation
)时,我收到以下错误:

提供的资源查找数据无效(类型不匹配)

另一方面,当我将父资源的
resource\u name
定义为
library/books/
(带尾随斜杠)时,子资源返回的结果很好,但父资源本身返回404错误

如果我用下划线(
library\u books
library\u books\u circulation
)格式化
resource\u name
s),一切都很好-但是它们真的很难看


我正在运行Python2.7.3,使用Django 1.6和Tastypie 0.10.0。

尽管我不确定使用带有斜杠的资源名称的方法是否始终适用于您,但为了解决您的问题,您可以简单地更改URL注册的顺序

注册URL时,请最后注册名为“library/books”的资源。 您出现问题的原因是“图书馆/书籍/书架”被捕获为主键为“书架”的书籍。如果资源“library/books/shelf”的url模式首先出现,Django将在尝试解析library/books/pk之前捕获它们