Как вызвать метод класса в пути 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'),
]
Вернуться на верх