2012-07-27 71 views
3

我試過Tastypie Cookbook這個例子。tastypie從非pk字段訪問數據

通過添加此代碼從用戶名而不是id訪問用戶資源。

#myapp/api/resources.py 
class UserResource(ModelResource): 
    class Meta: 
     queryset = User.objects.all() 

    def prepend_urls(self): 
     return [ 
      url(r"^(?P<resource_name>%s)/(?P<username>[\w\d_.-]+)/$" % self._meta.resource_name, self.wrap_view('dispatch_detail'), name="api_dispatch_detail"), 
     ] 

這是我的網址文件,

v1_api = Api(api_name='v1') 
v1_api.register(userResource()) 

這是所有可用的網址,

^api/ ^(?P<api_name>v1)/ ^(?P<resource_name>users)/$ [name='api_dispatch_list'] 
^api/ ^(?P<api_name>v1)/ ^(?P<resource_name>users)/schema/$ [name='api_get_schema'] 
^api/ ^(?P<api_name>v1)/ ^(?P<resource_name>users)/set/(?P<pk_list>\w[\w/;-]*)/$ [name='api_get_multiple'] 
^api/ ^(?P<api_name>v1)/ ^(?P<resource_name>users)/(?P<pk>\w[\w/-]*)/$ [name='api_dispatch_detail'] 

我所尋找的,而不是調用此網址

http://myDomain.com:8000/api/v1/users/1/?format=json

我想打電話給基於用戶名

http://myDomain.com:8000/api/v1/users/myUserName/?format=json

+0

問題是什麼嗎? – astevanovic 2012-07-27 22:38:08

+0

這個問題是我的代碼訪問我的資源用戶名不是由編號 – mohd 2012-07-28 01:37:13

回答