Я знаю, что это довольно легко сделать, но в этот момент я немного запутался.
У меня есть класс:
class CustomListView(view.CustomView, generic.ListApiView):
queryset = models.Custom.objects.all()
serializer_class = serializers.CustomListSerializer
def perform_instance(self):
url = self.request.path_info
... some stuff
custom_obj = {...}
return custom_obj
def get_queryset(self):
obj = self.perform_instance()
...
def get_serializer_class(self):
obj = self.custom_obj()
Мне нужно создать свой класс таким образом, чтобы custom_obj стал атрибутом класса , (так что execute_instance будет вызываться только одинвремя создания класса) и custom_obj становится доступным экземпляром self.obj
внутри get_queryset
и get_serializer_class
.
Я пытался вызвать super()__init__
и инстанцировал perform_instance
другим способом, но я не могу 'Я не могу найти решение.
Я пробовал что-то вроде этого:
class CustomListView(view.CustomView, generic.ListApiView):
queryset = models.Custom.objects.all()
serializer_class = serializers.CustomListSerializer
def __init__(self, *args, **kwargs):
obj_instances = self.perform_instance()
""" or self["obj_instances"] = self.perform_instance()
assigning obj_instance as class variable and more"""
super(CustomListView, self).__init__(*args, **kwargs)
def perform_instance(self):
...
def get_queryset(self):
obj = self.obj_instance
...