Вызов собственного класса в Django views

Реализовал приложение на django, функциональность которого содержится внутри стороннего класса 'MyModel'. Для этого необходимо сначала инициализировать этот класс, загрузить туда содержимое модели. После чего добавлять записи, которые модель создает.

Написал приблизительно следующий код (views):

from django.shortcuts import render, redirect
from django.views.decorators.http import require_http_methods
from .models import App
from main import MyModel


exchange_model = None


def homepage(request):
    model = MyModel()  # инициализация и загрузка модели
    model.prepare(pretrained=True)

    global exchange_model  # глобальная функция для передачи загруженной модели
    def exchange_model():
        return model

    params = App.objects.all()
    return render(request, 'homepage.html', {"params_list": params})


@require_http_methods(["POST"])
def add(request):
    model = exchange_model()
    init_param = request.POST['some_param']

    text = model.generate()  # вызов загруженной модели
    result = App(init_param=init_param, text=text)
    result.save()
    return redirect('homepage')

Только изучаю Django. Поэтому не представляю и найти тоже нигде не мог, как такое правильно реализовать. Приведенный выше код работает и выполняет то, что необходимо, но по-моему в нем есть два огромных "костыля". Во-первых, вызов модели из глобальной функции. Во-вторых, при редиректе с функции 'add' на домашнюю страницу, происходит повторная инициализация одной и той же модели (занимает время).

Хотелось бы понять, как это сделать правильно и ускорить работу

Вернуться на верх