Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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
Django和Tastypie的反向URL问题_Django_Django Piston_Tastypie - Fatal编程技术网

Django和Tastypie的反向URL问题

Django和Tastypie的反向URL问题,django,django-piston,tastypie,Django,Django Piston,Tastypie,我们正在将API从Django-活塞移植到Django-TastyPie。一切都很顺利,'直到我们做到这一点: 应用程序的url.py url(r'^upload/', Resource(UploadHandler, authentication=KeyAuthentication()), name="api-upload"), url(r'^result/(?P<uuid>[^//]+)/', Resource(ResultsHandler, authentication

我们正在将API从Django-活塞移植到Django-TastyPie。一切都很顺利,'直到我们做到这一点:

应用程序的url.py

 url(r'^upload/', Resource(UploadHandler, authentication=KeyAuthentication()), name="api-upload"),
    url(r'^result/(?P<uuid>[^//]+)/', Resource(ResultsHandler, authentication=KeyAuthentication()), name="api-result")
url(r'^upload/',资源(UploadHandler,authentication=KeyAuthentication()),name=“api upload”),
url(r'^result/(?P[^/]+)/”,资源(ResultsHandler,authentication=KeyAuthentication()),name=“api结果”)
这使用活塞,所以我们想把它改成适合tastyPie的东西

url(r'^upload/', include(upload_handler.urls), name="api-upload"),
url(r'^result/(?P<uuid>[^//]+)/', include(results_handler.urls), name="api-result")
url(r'^upload/),包括(upload\u handler.url),name=“api upload”),
url(r'^result/(?P[^/]+)/),包括(results_handler.url),name=“api result”)
但我们被困在这个错误上

找不到参数为“()”且关键字参数为“{'uuid':'fbe7f421-b911-11e0-b721-001f5bf19720'}”的“api结果”的反转

以及结果的调试页面:

Django使用MelodyService.URL中定义的URLconf,按以下顺序尝试了这些URL模式:

^melotranscript/^upload/ ^melotranscript/^result/(?P[^/]+)/^(?presltshandler)/$[name='api\u dispatch\u list'] ^melotranscript/^result/(?P[^/]+)/^(?presltshandler)/schema/$[name='api\u get\u schema'] ^melotranscript/^result/(?P[^/]+)/^(?presltshandler)/set/(?P\w[\w/;-]*)/$[name='api'u get\u multiple'] ^melotranscript/^result/(?P[^/]+)/^(?presltshandler)/(?P\w[\w/-]*)/$[name='api\u dispatch\u detail'] ^melotranscript/^processed/(?P.)$ ^管理员/文件/ ^TOU/$[name='TOU'] ^$[name='index'] ^管理员/ ^doc/(?P.)$ 当前URL melotranscript/result/fbe7f421-b911-11e0-b721-001f5bf19720/与其中任何一个都不匹配


知道这个问题的人?这可能是一个非常愚蠢的问题

Django'include'不支持名称。您可以在以下位置找到的Tastypie URL的名称:Resource.base_URL()

对于有此问题的未来访问者,URL的名称为
api_dispatch_list
,您还需要指定api名称:

url = reverse('api_dispatch_list', kwargs={'resource_name': 'myresource', 'api_name': 'v1'})
还有其他URL名称:

您可以在调用reverse时使用它们,也可以在HTML中使用它们,如下所示:

{% url "api_get_schema" resource_name="myresource" api_name="v1" %}

我不能写评论,所以我必须在这里发布 要将其包含在模板中,您应该执行以下操作

{% url "api_dispatch_list" resource_name="app_name" api_name='v1' %}?format=json
或者在我的例子中,它只在没有api部分的情况下工作

{% url "api_dispatch_list" resource_name="app_name" %}?format=json
要获取资源的可用URL列表,请从python shell导入资源,然后执行以下命令

for url in ExampleResource().urls:
    print(url.name)
你应该得到这样的东西

api_dispatch_list
api_get_schema
api_get_multiple
api_dispatch_detail
有关更多详细信息,或者如果您正在使用命名空间,请检查此项

是否可以在django模板中使用上面的
{%…%}
而不是python代码?哇,没有这篇文章很难理解。谢谢
api_dispatch_list
api_get_schema
api_get_multiple
api_dispatch_detail