在django / tastypie API中修改URL结构

时间:2013-08-21 20:21:15

标签: python django url tastypie

我有一个使用以下代码制作的tastypie API:

v1_api = Api(api_name='v1')
v1_api.register(UserResource())
v1_api.register(IncomeCategoryResource())
v1_api.register(OutcomeCategoryResource())
v1_api.register(IncomeResource())
v1_api.register(OutcomeResource())

urlpatterns = patterns('',
    (r'^api/', include((v1_api.urls))), # model urls
)

我已将json设置为默认格式,因此每次访问API时都不必提供?format=json。到目前为止,我的网址看起来像这样:

http://localhost:8000/api/v1/user/

http://localhost:8000/api/v1/incomecategory/

等。我希望他们看起来像这样:

http://localhost:8000/api/v1/user.json

http://localhost:8000/api/v1/incomecategory.json

我怎么能用tastypie做到这一点?我在def prepend_urls(self):课程中尝试了ModelResource的一些实验,但它根本不起作用。我想这可以在Apifrom tastypie.api import Api)内的某个位置进行配置。比你有任何提示...

1 个答案:

答案 0 :(得分:0)

添加

incomecategory.json 

到您的resource_name

并将其添加到您的ModelResource

 def determine_format(self, request):
        return 'application/json'

并在settings.py中添加此行

TASTYPIE_ALLOW_MISSING_SLASH = True