如何编写get端点从文件返回的数据乘以查询的参数

时间:2019-07-15 17:58:21

标签: python django django-rest-framework

我尝试为文件中的数据编写获取端点。我也想通过查询中的参数乘以数据,不幸的是我得到了一个错误。有什么办法可以避免呢?

我得到的错误: / data /'DataView'的AssertionError应该包含serializer_class属性,或覆盖get_serializer_class()方法。

# Views.py
class DataView(ListAPIView):

    def get_queryset(self):
        mult = self.request.query_params.get('mult', None)
        y = np.loadtxt('media/data_vv.txt')[:10]
        x = list(range(len(y)))
        print(mult)
        if mult is not None:
            y *= float(mult)

        data = {'x': x, 'y': y}
        return data

我想避免错误并获取数据。

2 个答案:

答案 0 :(得分:0)

您可以使用[https://www.django-rest-framework.org/tutorial/1-serialization/#creating-a-serializer-class][1]链接来了解如何创建序列化程序类。

序列化器基本上是其余框架的形式。

答案 1 :(得分:0)

# models.py
class Data(models.Model):
    data_from_file = models.CharField(max_length=20)

# serializers.py
class DataSerializer(serializers.ModelSerializer):
    class Meta:
        model = Data
        fields = '__all__'

#views.py
class DataView(ListAPIView):
    serializer_class = DataSerializer

    def get_queryset(self):
        mult = self.request.query_params.get('mult', None)
        y = np.loadtxt('media/data_vv.txt')[:10]
        x = list(range(len(y)))

        if mult is not None:
            y *= float(mult)

        y = list(y)
        data = {'x': x, 'y': y}
        content = JSONRenderer().render(data)
        content = Data(data_from_file=content)
        content.save()
        serializer = DataSerializer(content)

        return JsonResponse(serializer.data, safe=False)

现在错误是:尝试在序列化程序data_from_file上获取字段DataSerializer的值时,出现AttributeError。

我不知道如何避免此错误。