Как вызвать метод класса в пути URL Django?
Как вызвать метод класса в пути URL Django?
Я хочу вызвать метод data_display
внутри класса DataLoad
. как я могу вызвать его в моем файле URLs.py? так что когда я нажму на путь, он будет отображаться в шаблоне data_display.html
.
views.py
class DataLoad:
def __init__(self, save_path, name_of_file):
self.save_path = save_path
self.name_of_file = name_of_file
def file_load(self):
file_path = os.path.join(self.save_path, self.name_of_file+".html")
return file_path
def data_display(request,*args, **kwargs):
df = pd.read_csv("/home/satyajit/Desktop/opensource/data/us_amz.csv", low_memory=False)
json_records = df.reset_index().to_json(orient ='records')
data = []
data = json.loads(json_records)
context = {'data': data}
return render(request, "home/data_display.html", context)
urls.py
from apps.home.views import DataLoad
data = DataLoad.data_display(request)
urlpatterns = [
#path('data_display', DataLoad.as_view(), name='data_display'),
path('data_display', data, name='data_display'),
]
Согласно документации, ваше представление должно расширять класс View
и ваш метод должен быть назван как HTTP метод, который вы хотите сопоставить.
from django.views import View
class DataLoad(View):
def get(request, **kwargs):
df = pd.read_csv("/home/satyajit/Desktop/opensource/data/us_amz.csv", low_memory=False)
# ...
return render(request, "home/data_display.html", context)
# url.py
from apps.home.views import DataLoad
urlpatterns = [
path('data_display', DataLoad.as_view(), name='data_display'),
]