Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/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与使用redis的非orm不返回任何对象_Django_Redis_Tastypie - Fatal编程技术网

django tastypie与使用redis的非orm不返回任何对象

django tastypie与使用redis的非orm不返回任何对象,django,redis,tastypie,Django,Redis,Tastypie,我正在尝试使用redis将tastypie与非orm结合使用 我实现了一个自定义资源,如上建议的 以下是代码的一部分: class OrderResource(Resource): order_id = fields.CharField(attribute='order_id') store_url = fields.CharField(attribute='store_url') products = fields.ListField(attribute='produc

我正在尝试使用redis将tastypie与非orm结合使用

我实现了一个自定义资源,如上建议的

以下是代码的一部分:

class OrderResource(Resource):
    order_id = fields.CharField(attribute='order_id')
    store_url = fields.CharField(attribute='store_url')
    products = fields.ListField(attribute='products')

    class Meta:
        queryset = Order
        resource_name = 'order'
        allowed_methods = ['get', 'post', 'put', 'delete', 'patch']
        authorization = Authorization()

    def _client(self):
        return redis.Redis('localhost')

    def detail_uri_kwargs(self, bundle_or_obj):
        kwargs = {}
        if isinstance(bundle_or_obj, Bundle):
            kwargs['pk'] = bundle_or_obj.obj.order_id
        else:
            kwargs['pk'] = bundle_or_obj.order_id

        return kwargs

    def get_object_list(self, request):
        query = self._client()
        results = list()

        for store_url in query.smembers('store_url'):
            orders_id = query.hgetall('store_url:%s' % store_url)
            for order in orders_id.keys():
                order = Order(store_url=store_url, order_id=order)
                results.append(order)

        return results

    def obj_get_list(self, request=None, **kwargs):
        # Filtering disabled for brevity...
        return self.get_object_list(request)
但是当我尝试检索所有订单时,json
对象
是空的,即使
总数
正确。 我检查过了,包是正确的:

<Bundle for obj: '<orders.models.Order object at 0x10c6f1e90>' and with data: '{'order_id': u'1', 'store_url': u'test.com', 'products': [u'a', u'b', u'c'], 'resource_uri': None}'>

我做错了什么


OBS:我不能使用django Norel

您的代码中的
顺序是什么?使用
Resource
您不需要
Meta.queryset
。尝试移除它


另外,确保
订单
可序列化。很可能是Tastypie无法序列化它。尝试使用简单的字典对象,而不是顺序优先。阅读更多关于和的信息。

Meta
中添加
object\u类
解决了问题

这也有道理,但不是问题所在。问题是我忘了在Meta上设置
object\u类