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
Python Django REST框架:向渲染器提供QuerySet_Python_Django_Django Rest Framework_Django Queryset - Fatal编程技术网

Python Django REST框架:向渲染器提供QuerySet

Python Django REST框架:向渲染器提供QuerySet,python,django,django-rest-framework,django-queryset,Python,Django,Django Rest Framework,Django Queryset,我们希望使用Django REST框架将模型数据(通过Django REST框架API指定的过滤)呈现为绘图。我们的绘图引擎直接与DjangoQuerySets配合使用 问题是:如何将模型数据序列化为DjangoQuerySets 我们尝试创建一个只传递数据的序列化程序(没有成功): 如果可以通过Django REST框架(通过Django REST框架URL系统提供的参数)访问与内部访问相同的QuerySet,那就太好了 mymodel.objects.filter(<my filter

我们希望使用Django REST框架将模型数据(通过Django REST框架API指定的过滤)呈现为绘图。我们的绘图引擎直接与Django
QuerySets
配合使用

问题是:如何将模型数据序列化为Django
QuerySets

我们尝试创建一个只传递数据的序列化程序(没有成功):

如果可以通过Django REST框架(通过Django REST框架URL系统提供的
参数)访问与内部访问相同的
QuerySet
,那就太好了

mymodel.objects.filter(<my filter>)
mymodel.objects.filter()

关于如何实现这一点有什么想法吗?

你的意思是做这样的事情吗

from rest_framework import generics, serializers

from .models import Foo


class QuerySetSerializer(serializers.ModelSerializer):
    class Meta:
        model = Foo
        fields = ('id', 'field1', 'field2',)


class QuerySetList(generics.ListAPIView):
    serializer_class = QuerySetSerializer

    def get_queryset(self):
        return Foo.objects.filter(<my filter>)  # You can filter whatever you want here
从rest\u框架导入泛型、序列化程序
from.models导入Foo
类QuerySetSerializer(serializers.ModelSerializer):
类元:
model=Foo
字段=('id','field1','field2',)
类QuerySetList(generics.ListAPIView):
序列化程序_class=QuerySetSerializer
def get_queryset(自我):
return Foo.objects.filter()#您可以在此处筛选任何需要的内容

我不明白您希望如何传输数据。您不想将其序列化为JSON?没错。我希望
呈现程序
能够访问对应于API查询的
QuerySet
实例。(然后,
Renderer
可以使用
QuerySet
执行任何它想要的操作-在我的例子中,调用
QuerySet
上的一个方法,该方法将创建一个.png的绘图)。(参见我对@jape的评论-希望更清楚?)我想要的一个例子是:假设有一个Django模特,他有名字和电子邮件。通过API,我可以访问具有特定名称的所有Person实例,如下所示:
/API/?name=John
。我希望能够访问Person QuerySet(在渲染器中),而不是从这些实例创建json。这应该等于您通过
Person.objects.filter(name=John)
获得的结果。因此,我的问题是:当访问任意API url
/API/?name=John
时,如何向渲染器提供相应的查询集。(现在更清楚了吗?如果情况允许,我可以更新我上面的Q?)
from rest_framework import generics, serializers

from .models import Foo


class QuerySetSerializer(serializers.ModelSerializer):
    class Meta:
        model = Foo
        fields = ('id', 'field1', 'field2',)


class QuerySetList(generics.ListAPIView):
    serializer_class = QuerySetSerializer

    def get_queryset(self):
        return Foo.objects.filter(<my filter>)  # You can filter whatever you want here