【发布时间】:2023-01-27 00:39:49
【问题描述】:
class getAlarmlogsFilterByDistincts(APIView):
permission_classes = (IsAuthenticated,)
def get(self, request, *args, **kwargs):
column_name = request.data['column_name'] #just an idea, dont works
distincts_list = request.data['distincts_list'] #just an idea, dont works
column_values = [Alarmlog.objects.filter(**{column_name: x}) for x in distincts_list ]
serialized_response = AlarmlogSerializer(column_values)
return Response(serialized_response.data, status=status.HTTP_200_OK)
我的看法或多或少是这样的。我需要在 column_name 中接收一个字符串,在 distincts_list 中接收一个列表(可能是 json 格式)。
我尝试了什么:
class AlarmlogsFilterByDistinctsSerializer(serializers.Serializer):
distincts_list = serializers.ListField()
column_name = serializers.CharField()
class getAlarmlogsFilterByDistincts(CreateAPIView):
permission_classes = (IsAuthenticated,)
serializer_class = AlarmlogsFilterByDistinctsSerializer
def post(self, request, *args, **kwargs):
column_values = columnFilter(request.data['column_name'], request.data['distincts_list'])
response_serialized = serializers.serialize('json', column_values)
print(response_serialized)
return Response(response_serialized, status=status.HTTP_200_OK)
我试过使用 post 方法,但我的回复是一个字符串:
"[{\"model\": \"alarms.alarmlog\", \"pk\": 26, \"fields\": {\"created_at\": \"2023-01-12T17:06:19.016Z\", \"updated_at\": \"2023-01-12T17:06:19.016Z\", \"name\": \"string43\", \"description\": \"string\", \"severity\": \"low\", \"type\": \"string\", \"period\": \"string\", \"value\": \"string\", \"reference\": \"string\", \"source\": 2147483647, \"third_party_id\": \"string\", \"device\": \"string\", \"extra_content\": {}, \"occurred_at\": \"2023-01-12T16:29:39.055Z\", \"equipment\": 7}}, {\"model\": \"alarms.alarmlog\", \"pk\": 27,...
附言。对不起我的英语
【问题讨论】:
标签: python django django-rest-framework