7👍
request
is passed as a first argument. Your first argument is self
.
This is why it would be a good idea to extract get_indiceComercioVarejista
from ChartData
class:
def get_indiceComercioVarejista(request, format=None):
data = {
'customer' : 10,
'sales': 100
}
return Response(data)
3👍
I think the best approach would be to move get_indiceComercioVarejista
out of the APIView, because APIView
just dispatchs to the regular http methods: get post put patch delete
.
e.g:
view.py
def get_indiceComercioVarejista(request, format=None):
data = {
'customer' : 10,
'sales': 100
}
return Response(data)
urls.py
url(r'^api/chart/indiceVolumeReceitaComercioVarejista/$', views.get_indiceComercioVarejista)
Another solution would be to use ViewSet which are the recommended when working with DRF.
- How to configure Apache to run ASGI in Django Channels? Is Apache even required?
- Api key and Django Rest Framework Auth Token
- How to go from a Model base to derived class in Django?
1👍
Expanding on the other answers:
Your view defines get_iniceComercioVarejista
as an instance method of the ChartData
class.
However, in your urls.py, you have the following line:
url(r'^api/chart/indiceVolumeReceitaComercioVarejista/$', views.ChartData.get_indiceComercioVarejista)
You must declare an instance of ChartData
by adding parentheses for that line to work as your view code is currently written. The modified line should read:
url(r'^api/chart/indiceVolumeReceitaComercioVarejista/$', views.ChartData().get_indiceComercioVarejista)
An alternative solution is removing self
from the method definition as others have suggested, i.e.:
def get_indiceComercioVarejista(request, format=None)
This approach implicitly turns get_indiceComercioVarejista
into a static method (read the discussion here) and your urls.py would work as written. If you choose this solution, I strongly suggest adding a staticmethod
decorator.
Finally, if you decide to move get_indiceComercioVarejista
out of the ChartData
class, then remove the self
argument and use the solution from @Willemoes
- Django custom login page
- Django: time zone issue
- Django ORM leaks connections when using ThreadPoolExecutor
0👍
just remove self
from django.http import JsonResponse
from django.shortcuts import render, HttpResponse
import requests
import pandas as pd
from rest_framework.views import APIView
from rest_framework.response import Response
class ChartData(APIView):
authentication_classes = []
permission_classes = []
def get(self, request, format=None):
data = {
'customer' : 10,
'sales': 100
}
return Response(data)
#just remove self from bellow function it's unnecessary
#before
def get_indiceComercioVarejista(self, request, format=None):
data = {
'customer' : 10,
'sales': 100
}
return Response(data)
#after
def get_indiceComercioVarejista(request, format=None):
data = {
'customer' : 10,
'sales': 100
}
return Response(data)
- Pytest and Django settings runtime changes
- Django: taking input and showing output in the same page
- How to fix Error: pg_config executable not found on Elastic Beanstalk permanently