2012-08-30 51 views
1

我對django tastypie的這種行爲感到有些困惑,我試圖通過backbone.js將過濾器傳遞給我的資源,但沒有任何東西會返回。我如何將過濾器傳遞給django tastypie

我的資源類看起來像這樣;

class TenderResource(ModelResource): 
    class Meta: 
     queryset = Tender.objects.all() 
      authorization = Authorization() 
      list_allowed_methods = ['get', 'post'] 
      detail_allowed_methods = ['get'] 
     resource_name = 'tender' 
     filtering = { 
       'dept_ref':ALL, 
       } 

我的URLconf文件看起來像這樣;

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

urlpatterns = patterns('', 
    # Examples: 
    url(r'^$', DocView.as_view(), name='docview'), 
    url(r'^api/$', include(v1_api.urls)), 
) 

在我的apps.js,含骨幹邏輯,我的網址調用帶有過濾器的資源看起來是這樣的;

TENDER_API = "/api/v1/tender/?dept_ref=119/"; 

但是當我運行的應用程序沒有結果返回!如果我參加這個網址,並從即

"http://127.0.0.1:8000/api/v1/tender/?dept_ref=119/" 

我收到JSON結果從資源瀏覽器中直接運行它;

但是...

當我通過以下網址與我的應用程序沒有過濾我收到的所有數據;

TENDER_API = "/api/v1/tender/"; 

我在想什麼?或者什麼是將過濾器傳遞給django tastypie的最佳方式是什麼?

迦特

+1

莫非尾隨斜線是一個問題?那就是''http://127.0.0.1:8000/api/v1/tender/?dept_ref=119「'而不是'」http://127.0.0.1:8000/api/v1/tender/?dept_ref = 119 /「'? – kgr

+0

不,沒有,但都沒有工作 – gath

+0

所以我認爲這是一個比django/tastypie更backbone.js問題。根據我的經驗,這裏沒有太多可能出錯的地方。是否有可能檢查主幹提出的請求是什麼(例如使用Firebug)? – kgr

回答

1

後一對夫婦的搜索我等得了this疑問,我的回答非常清楚。

基本上你添加篩選到您的tastypie資源文件,

class TenderResource(ModelResource): 
    class Meta: 
     .... 
     filtering = { 
         "dept_ref":ALL 
        } 

則通過過濾器作爲所謂的「數據」通過您的骨幹collections.fetch方法JavaScript對象與

MyCollection.fetch({data:{"dept_ref":"119"}}) 
相關問題