1

我对 django sweetpie 的这种行为有点困惑,我试图通过backbone.js 将过滤器传递给我的资源,但没有任何返回。

我的资源类看起来像这样;

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中,包含主干逻辑,我用过滤器调用资源的url看起来像这样;

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

但是当我运行应用程序时,没有返回任何结果!,如果我使用这个 URL 并直接从浏览器运行它,即

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

我从资源中收到 json 结果;

但 ...

当我从我的应用程序传递以下没有过滤器的 URL 时,我收到所有数据;

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

我错过了什么?或将过滤器传递给 django sweetpie 的最佳方法是什么?

加思

4

1 回答 1

1

经过几次搜索后,我在 SO 中得到了这个问题,它很好地回答了我的问题。

基本上,您将过滤添加到您的美味派资源文件中,

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

然后你通过你的骨干 collections.fetch 方法将过滤器作为称为“数据”的javascript对象传递给

MyCollection.fetch({data:{"dept_ref":"119"}})
于 2012-08-31T06:01:49.983 回答