我尝试为文件中的数据编写获取端点。我也想通过查询中的参数乘以数据,不幸的是我得到了一个错误。有什么办法可以避免呢?
我得到的错误:
/ 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
我想避免错误并获取数据。
答案 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。
我不知道如何避免此错误。