@withoutname

Как вызвать функцию из файла views.py (django)?

Задумка следующая: на html странице есть форма с тегом input и атрибутом text. Полей таких несколько. При нажатии кнопки "отправить", все данные введенные пользователем массивом уходят на сервер в файл views.py, в котором функция external(request):
def external(request):
    global z
    z = request.POST.getlist("items")
    run([sys.executable, 'C://Users//support//PycharmProjects//untitled//project//main//codetest.py'])

    return render(request, 'main/test.html')

принимает массив таким образом: z = request.POST.getlist("name"), а также запускает скрипт codetest.py. Переменная z объявлена глобально (global z).
В этом же файле (views.py) есть еще одна функция test(), в которой вызывается функция external() и массив z преобразовывается в кортеж:
def test():
    external()
    tuplez = tuple(z)

В файле codetest.py импортирую функцию из файла views.py следующим образом: from main.views import test, где main - название приложения django. Затем в определенном месте кода я вызываю эту функцию.
Проблема в том, что при запуске скрипта получаю следующее сообщение: ModuleNotFoundError: No module named 'main', хотя файлы __init__.py, views.py и codetest.py (скрипт) лежат в одном каталоге.
В чем может быть проблема?
  • Вопрос задан
  • 634 просмотра
Пригласить эксперта
Ответы на вопрос 2
@withoutname Автор вопроса
Решил задачу следующим образом:
Добавил в run([sys.executable, 'C://Users//support//PycharmProjects//untitled//project//main//codetest.py', str(z)]) переменную z, которая на себя принимает массив.
В скрипте вызвал эту переменную в качестве аргумента: x = "%s" % (sys.argv[1]).
Ответ написан
Комментировать
@AstraVlad
Финансист, консультант, программист-любитель
from .views import test ?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы