Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将过滤器传递给django tastypie_Django_Backbone.js_Tastypie - Fatal编程技术网

如何将过滤器传递给django tastypie

如何将过滤器传递给django tastypie,django,backbone.js,tastypie,Django,Backbone.js,Tastypie,我对django tastypie的这种行为感到有点困惑,我试图通过backbone.js向我的资源传递一个过滤器,但什么也没有返回 我的资源类如下所示 class TenderResource(ModelResource): class Meta: queryset = Tender.objects.all() authorization = Authorization() list_allowed_methods = [

我对django tastypie的这种行为感到有点困惑,我试图通过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,
                }
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)),
)
TENDER_API = "/api/v1/tender/?dept_ref=119/";
我的URLconf文件如下所示

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,
                }
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)),
)
TENDER_API = "/api/v1/tender/?dept_ref=119/";
在my apps.js(包含主干逻辑)中,我使用过滤器调用资源的url如下所示:

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,
                }
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)),
)
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 tastypie传递过滤器的最佳方式是什么


盖特

经过几次搜索后,我提出了一个问题,因此我的问题得到了很好的回答

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

class TenderResource(ModelResource):
    class Meta:
        ....
        filtering = {
                       "dept_ref":ALL
                    }
然后通过主干collections.fetch方法将过滤器作为名为“data”的javascript对象传递

MyCollection.fetch({data:{"dept_ref":"119"}})

经过几次搜索,我提出了一个问题,所以我的问题得到了很好的回答

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

class TenderResource(ModelResource):
    class Meta:
        ....
        filtering = {
                       "dept_ref":ALL
                    }
然后通过主干collections.fetch方法将过滤器作为名为“data”的javascript对象传递

MyCollection.fetch({data:{"dept_ref":"119"}})

后面的斜杠会有问题吗?这就是
的情况。”http://127.0.0.1:8000/api/v1/tender/?dept_ref=119“
而不是
”http://127.0.0.1:8000/api/v1/tender/?dept_ref=119/“
?不,两种方法都试过了,但都不管用,所以我认为这比django/tastypie更像是一个backbone.js问题。根据我的经验,这里不会有太多问题。您是否可以检查主干网发出的具体请求(例如使用Firebug)?顺便说一句,您粘贴的第一个片段中的缩进是错误的。还有Authorization()类可能在这里发挥作用。但我很好奇为什么它可以直接从浏览器中正常工作。。。我想身份验证会阻止对…的请求。尾部斜杠会有问题吗?这就是
的情况。”http://127.0.0.1:8000/api/v1/tender/?dept_ref=119“
而不是
”http://127.0.0.1:8000/api/v1/tender/?dept_ref=119/“
?不,两种方法都试过了,但都不管用,所以我认为这比django/tastypie更像是一个backbone.js问题。根据我的经验,这里不会有太多问题。您是否可以检查主干网发出的具体请求(例如使用Firebug)?顺便说一句,您粘贴的第一个片段中的缩进是错误的。还有Authorization()类可能在这里发挥作用。但我很好奇为什么它可以直接从浏览器中正常工作。。。我认为身份验证会阻止对..的请求。。