2013-08-21 99 views
0

我有与下面的代码做了一个tastypie API:修改URL结构

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时都要使用​​。我的URL看起来像这样至今:

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做那个?我在ModelResource类中尝试了def prepend_urls(self):的一些实验,但它根本不起作用。我想这可以配置在Apifrom tastypie.api import Api)内的某处。比你的任何提示...

+0

这只是一个ide ai通过查看tastypie代码得到..我想你可以使用这个https://github.com/toastdriven/django-tastypie/blob/master/tastypie/utils/urls.py#L5并使它看起来像.json一样它在这里使用https://github.com/toastdriven/django-tastypie/blob/master/tastypie/api.py#L102 – boltsfrombluesky

回答

0

添加

incomecategory.json 

您RESOURCE_NAME

,并添加到您的ModelResource

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

和settings.py中添加此行

TASTYPIE_ALLOW_MISSING_SLASH = True