Para tornar o problema mais próximo da realidade criei um Model para representar o produto. Para popular o BD com os dados fornecidos criei o comando customizado populate.
Caso precise alterar os dados estão no arquivo
products/data.py
.
Para simplificar a pivotagem das vendas por data utilizei o pacote django-pivot e para renderização da tabela o clássico DataTables. Com a necessidade de serverSide no DataTables utilizei o djangorestframework-datatables como middleware para tratar as propriedades enviadas.
A lógica do ajax está no arquivo products/static/products/js/main.js.
Execute os comandos a seguir:
$ cd nishikata
$ python -m venv env
$ ./env/Scripts/activate
$ pip install -r requirements.txt
$ py ./manage.py makemigrations
$ py ./manage.py migrate
$ py ./manage.py test
$ py ./manage.py populate
$ py ./manage.py runserver
Após executado os comandos acesse a tabela App pelo navegador: http://127.0.0.1:8000/