I want to fetch some data between two dates, but got an error that is "AttributeError: 'str' object has no attribute 'values'". How I solve this issue?
views.py
class TestView(APIView):
def get(self, request):
user_obj = Payload.objects.all()
usr = self.request.user
print(usr)
user_data = TestSerializer(user_obj, many=True)
return Response({'status':'success'})
def post(self, request):
serializers = TestSerializer(data=request.data)
if serializers.is_valid(raise_exception=True):
start_date = serializers.validated_data['start_date']
end_date = serializers.validated_data['end_date']
user_id = serializers.validated_data['user_id']
user_obj = Payload.objects.filter(user=user_id, timestamp__gte=start_date,timestamp__lte=end_date)
sr = TestModelSerializer(user_obj, many=True)
return Response({'status':sr.data}, status = status.HTTP_200_OK)
else:
print(serializers.errors,"errors")
serializers.py
class TestSerializer(serializers.Serializer):
user_id = serializers.IntegerField()
start_date = serializers.DateTimeField()
end_date = serializers.DateTimeField()
class TestModelSerializer(serializers.ModelSerializer):
model = Payload
fields = '__all__'
models.py
class Payload(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
timestamp = models.DateTimeField(auto_now_add=True, blank=False)
input_values = models.CharField(max_length=20)
def __str__(self):
return self.input_values
